如何在显示第一张表之前重新计算所有公式?

如何在显示第一张表之前重新计算所有公式?

我已经开发了一个程序,该程序使用从 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>

相关内容