【发布时间】:2013-05-29 15:49:23
【问题描述】:
我有一个使用 OpenXML SDK 读写 Excel (xlsx) 单元格的类。该课程基于此处投票最多的答案:Open XML SDK 2.0 - how to update a cell in a spreadsheet?
我需要更新一个单元格,然后获取另一个单元格的值,其中包含一个计算公式。更新工作正常,但是当我在更新后读取公式单元格时,我得到了旧值,该值在编辑之前存在于文档中。但是,当我在运行程序后手动打开我的 xlsx 时,我可以看到正确的值。
所以似乎单元格的旧值缓存在某处......这很奇怪,因为我每次在读/写单元格之前打开/关闭我的文档。
编辑: 文森特的回答让我更新了我的示例代码。我添加了一个 Refresh 方法,可以在后台运行的 Excel 应用程序中打开、保存和关闭文档。这会重新计算我的公式。 有关更多详细信息和 C# 代码示例,请参阅:http://fczaja.blogspot.com/2013/05/how-to-read-and-write-excel-cells-with.html
【问题讨论】:
-
是的,我已经看到了。如果您查看我的 UpdateCell 和 ReadCell 方法,您会发现我已经尝试从最受好评的答案中应用解决方案 - 不走运
-
您还应该阅读其他答案。我试图找到我在哪里读到,确保 Excel 重新计算公式的唯一方法是删除公式单元格的缓存值
-
在另一个副本中 ;-) stackoverflow.com/questions/7012545/…
标签: excel excel-formula openxml openxml-sdk