Open XML SDK 2.5是否能够重新计算Excel公式?

时间:2016-09-09 09:59:18

标签: c# openxml-sdk

我正在努力使用Open XML SDK,我已经阅读了很多关于这个主题的帖子但是无法弄明白。我的目标是拥有一个本地创建的Excel文件,其中包含一个公式并在线编辑输入并在线检索计算值。

我不知道这是否可行,因为Open XML可能只会更改数据,我不知道它是否也可以执行Excel计算。

例如,我的本地文件包含三个单元格:

A1: 1
A2: 2
A3: =(A1+A2)

使用Open XML我将A2调整为值3,但是A3的结果仍然是3而不是4。

我已经读过有关Excel必须重新计算的内容,但我的目标是将Excel文件作为某种计算引擎,而不是将所有计算转移到C#。

欢迎提供所有提示和建议。

亲切的问候,帕特里克

3 个答案:

答案 0 :(得分:1)

首先感谢所有回复。 其次,我想响应回答了我的问题,而开放的XML SDK只能调整文件,并且不会对重新计算文件中的现有公式做任何事情。这只会在Excel中打开时发生。我将看一下EPPlus。

答案 1 :(得分:0)

你可以使用这样的东西。

Cell cell; //supposing this is your cell referencing A3
CellFormula cellformula = new CellFormula();
cellformula.Text = "SUM(A1, A2)";
CellValue cellValue = new CellValue();
cellValue.Text = "0";
cell.Append(cellformula);
cell.Append(cellValue);

可以在此链接找到类似的示例:Formula cells in excel using openXML

答案 2 :(得分:0)

我觉得这个问题可能会有一些歧义。 OpenXML是存储文档的方式,因此无法使用OpenXML SDK进行计算。它是执行计算的电子表格引擎(Excel应用程序)。

当输入更新时,保存的电子表格,计算值应该更新。