我已经开发VB.Net
了一个程序,它使用从 Postgres SQL SELECT 获得的 RecordSet 创建一个Excel
文件并填写一张表。
我的程序在不使用任何 Microsoft Excel 程序集的情况下工作,而仅在 .XLSX 文件中写入 XML 文件。
我的程序运行良好,但在 SUM 或 SUMIF 或 COUNT 或 MAX 或 MIN 等行上应用的公式存在一些问题。
在名为的 XML 文件Sheet1.xml
中,我生成了以下 XML 部分
<row r="91" x14ac:dyDescent="0.25" spans="1:7">
<c r="E91" s="14" t="n">
<f>SUM(E4:E89)</f>
<v>0</v>
</c>
</row>
通常,此单元格必须将“5012”显示为数字(即单元格 E4 到 E89 的总和),但我的程序尚未完成计算并且单元格的值设置为 0。
当我加载生成的 Excel 文件时,Excel
在此单元格中显示 0。
要刷新此单元格以显示正确的值,我必须按 Ctrl+Alt+Shift+F9。
问题:
是否存在强制 Excel 在加载工作表后和显示第一个工作表之前重新计算所有公式的XML 元素或属性,以便显示正确的计算公式值?
我在 XML 级别搜索了一个避免按 Ctrl+Alt+Shift+F9 键的解决方案。
要解决您的问题,您必须简单地删除
<v>
元素!我已经尝试过使用 Excel 和 LibreOffice,并且这两个应用程序都可以使用。
您的单元格的新 XML 代码必须是
如果保存显示的 Excel 工作表,则 Excel 将添加一个
<v>
元素。保存显示的 Excel 文件后,您现在可以看到以下行。