在OpenXML sdk2中以编程方式从公式计算单元格值
我正在使用OpenXMLSDK2.0进行excel计算,但有一件事我没有解决 基本上,我用数据库中的数据填充一个excel文件并将其发送给用户……这一点很好。现在我想在我把一个公式放进去之后得到计算出来的单元格值,但不打开excel文档。。。 有没有一种方法可以用openxml sdk2.0填充excel文件并立即返回计算值 也许有人遇到过类似的问题或有一个有效的解决方案在OpenXML sdk2中以编程方式从公式计算单元格值,xml,openxml,Xml,Openxml,我正在使用OpenXMLSDK2.0进行excel计算,但有一件事我没有解决 基本上,我用数据库中的数据填充一个excel文件并将其发送给用户……这一点很好。现在我想在我把一个公式放进去之后得到计算出来的单元格值,但不打开excel文档。。。 有没有一种方法可以用openxml sdk2.0填充excel文件并立即返回计算值 也许有人遇到过类似的问题或有一个有效的解决方案 谢谢:)除了编写自己的解析器来计算单元格的值之外,这在当前是不可能的。当然,您可以在服务帐户下使用自动化来在幕后重新计算公式
谢谢:)除了编写自己的解析器来计算单元格的值之外,这在当前是不可能的。当然,您可以在服务帐户下使用自动化来在幕后重新计算公式,但这很快就会变得一团糟
spreadSheet.WorkbookPart.Workbook.CalculationProperties.ForceFullCalculation = true;
spreadSheet.WorkbookPart.Workbook.CalculationProperties.FullCalculationOnLoad = true;
当您手动打开Excel时,这将非常有效。但也无法通过编程方式使用公式获取单元格值。如果您希望通过open Xml SDK获取单元格值,则必须通过Excel应用程序打开Excel文件背景,并保存该文件。然后可以通过编程方式获取单元格值
这是来自Office开发中心的信息:
如何自动重新计算电子表格中单元格的公式值?
带有公式的单元格将缓存值存储在标记中,并显示缓存值作为结果。如果公式引用的单元格值以编程方式更改,则具有公式的单元格不知道该更改。然后,此公式的缓存值已过时,应进行更新。自动重新计算需要运行时布局功能,SDK不支持此功能。这种情况的解决方法是:删除公式单元格的缓存值,然后在后端调用Excel为您重新计算该值。Excel服务可以在这里提供帮助。谢谢,伙计!这也是我得到的结论:)我在后台打开文件保存,这样可以计算值。从技术上讲,这可能不是最佳解决方案,但这是唯一的选择,因为我不经常这么做,所以效果很好。谢谢你的回答!Pavdro,你可以发布你如何在后台打开和保存文件的示例代码,以刷新缓存并使重新计算工作正常吗?@dotnet Practicer你可以阅读此示例代码,使用excel应用程序后台打开和保存excel文件:或搜索它。这对你有帮助^_^