GemBox从电子表格或Flexcel中检索计算值

根据他们的文档:GemBox.Spreadsheet可以读写公式,但不能计算公式结果。 当您在MS Excel中打开一个XLS文件时,公式结果将被自动计算。

所以,如果我创build一个电子表格与一些注入值,并将其保存到磁盘,如果我在Excel中打开文件,我可以看到计算值..

如果我在gembox中打开该文件,并查找计算单元格的值,我会得到0的结果

在flexcel中也存在相同的function..不能从给定的单元格检索计算的值..它返回零..

所以我正在做的是:

  1. 打开一个现有的Excel文件
  2. 把一些数字放到一些单元格中
  3. 以不同的名称将文件保存到磁盘(也使用相同的文件尝试)
  4. 再次打开文件并查看计算单元格的总计列

该值始终为0 ..我在Excel中打开该文件..该值按预期计算。

GemBox.Spreadsheet当前仅支持由Excel计算的值(因此如果文件由MS Excel保存,则可以读取公式值)。 GemBox.Spreadsheet没有自己的计算引擎。

要以XLS格式读取公式值,请使用接受XlsOptions枚举的ExcelFile.LoadXls重载并使用XlsOptions.PreserveWorksheetRecordsXlsOptions.PreserveAll

要以XLSX格式读取公式值,请使用ExcelFile.LoadXlsx方法,并使用XlsxOptions枚举值XlsxOptions.PreserveKeepOpenXlsxOptions.PreserveMakeCopy

编辑(28-09-2016):
我们发布了一个新版本的GemBox.Spreadsheet(版本4.1),其中我们实现了对单元格公式计算的支持, 请参阅发布文章 。
在以下链接中,您可以find演示示例:
http://www.gemboxsoftware.com/Spreadsheet/Examples/Excel-Formula-Calculation/901

你真正的问题是什么?

单元格有两个属性:值和公式。 你看到的是由Excel重新计算的价值。 Gembox,如你所说,不重新计算价值。

如果您需要公式评估,请查找其他库,例如Apache POI 。