我已经开发了一个程序,该程序使用从 Postgres SQL SELECT 获得的 RecordSetVB.Net
创建一个文件并填充一张表。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。
问题:
是否存在XML 元素或属性在加载工作表之后和显示第一个工作表之前强制 Excel 重新计算所有公式,以便显示正确的计算公式值?
我在 XML 级别搜索一种避免按 Ctrl+Alt+Shift+F9 键的解决方案。
答案1
要解决您的问题,您只需删除<v>
元素!
我已经尝试使用 Excel 和 LibreOffice,这两个应用程序都可以使用。
您的手机的新 XML 代码必须是
<row r="91" x14ac:dyDescent="0.25" spans="1:7">
<c r="E91" s="14" t="n">
<f>SUM(E4:E89)</f>
</c>
</row>
如果你保存显示的 Excel 表,Excel 就会随之添加一个<v>
元素。
保存显示的 Excel 文件后,您现在可以看到以下几行。
<row r="91" x14ac:dyDescent="0.25" spans="1:7">
<c r="E91" s="14" t="n">
<f>SUM(E4:E89)</f>
<v>5553.0000000000018</v
</c>
</row>