我正在使用EPPlus库来创建电子表格(报告)。在我的应用程序中,每个新文档都会首先打开一个旧报告以获取以前的结果。问题是从包含公式的单元格中获取数据时 -不幸的是 EPPlus 没有计算引擎。为了使它工作,我需要在 Excel 中打开旧报告,保存更改(计算公式),然后正确创建新报告。如果我不这样做,那么公式单元格中的值是空白的。
- 有没有办法模拟(不是手动进行,而是使用代码)打开、计算、关闭没有安装 excel 的 excel 电子表格?
- 任何想法如何解决它?
我正在使用EPPlus库来创建电子表格(报告)。在我的应用程序中,每个新文档都会首先打开一个旧报告以获取以前的结果。问题是从包含公式的单元格中获取数据时 -不幸的是 EPPlus 没有计算引擎。为了使它工作,我需要在 Excel 中打开旧报告,保存更改(计算公式),然后正确创建新报告。如果我不这样做,那么公式单元格中的值是空白的。
EPPlus 可以从版本 4 计算公式。请参阅此页面 - https://epplus.codeplex.com/wikipage?title=About%20Formula%20calculation&referringTitle=Documentation
http://www.microsoft.com/en-us/download/details.aspx?id=5124
OpenXML 是我在无法访问 Office 时使用的......出去。
我仍然不知道它的所有来龙去脉,但它对我需要做的事情有效。
“微软目前不推荐也不支持任何无人值守、非交互式客户端应用程序或组件(包括 ASP、ASP.NET、DCOM 和 NT 服务)的 Microsoft Office 应用程序自动化,因为 Office 可能表现出不稳定的行为和/或在此环境中运行 Office 时出现死锁。” ...但同时他们提供了很多关于 OpenXML 操作的有用链接- 值得一游。
http://www.spreadsheetgear.com/ - 但它非常昂贵,999 美元/订阅
NPOI(Apache POI的 C# 端口- Microsoft 文档的 Java API)。Java版本可以读取计算值,所以也许C#版本也可以。
Office 集成包- 不知道是否可以计算