我正在使用EPPlus库创建电子表格(报告)。在我的应用程序中,每个新文档首先打开旧报告以获得以前的结果。问题在于获取包含公式的单元格中的数据-不幸的是,EPPlus没有计算引擎。为了使它工作,我需要在Excel中打开旧报告,保存更改(公式已计算),然后才能正确创建新报告。如果不这样做,那么来自公式单元格的值为空白。
- 有没有一种方法可以模拟(不是手动操作,而是通过代码)打开、计算和关闭Excel电子表格,而不安装Excel?
- 有什么解决方法吗?
我正在使用EPPlus库创建电子表格(报告)。在我的应用程序中,每个新文档首先打开旧报告以获得以前的结果。问题在于获取包含公式的单元格中的数据-不幸的是,EPPlus没有计算引擎。为了使它工作,我需要在Excel中打开旧报告,保存更改(公式已计算),然后才能正确创建新报告。如果不这样做,那么来自公式单元格的值为空白。
http://www.microsoft.com/en-us/download/details.aspx?id=5124
当我没有访问Office时,我使用OpenXML...你可以使用它构建办公文档而不必在计算机上安装Office...对我来说,需要一定的学习曲线和大量的搜索才能弄清楚事情。
我仍然不知道所有的细节,但它对我需要做的事情起到了作用。
"Microsoft目前不建议也不支持从任何未经过互动的客户端应用程序或组件(包括ASP,ASP.NET,DCOM和NT服务)自动化Microsoft Office应用程序,因为在此环境中运行Office可能会表现出不稳定的行为和/或死锁." ...但同时他们提供了许多有关OpenXML操作的有用链接 - 值得一看。
http://www.spreadsheetgear.com/ - 但它非常昂贵,每个订阅$999。
NPOI (一个C#版本的Apache POI - Microsoft文档的Java API)。Java版本可以读取计算后的值,因此C#版本也可能可以。
Office Integration Pack - 不知道它是否可以计算。