GemBox从电子表格或Flexcel中检索计算值
根据他们的文档:GemBox.Spreadsheet可以读写公式,但不能计算公式结果。 当您在MS Excel中打开一个XLS文件时,公式结果将被自动计算。
所以,如果我创build一个电子表格与一些注入值,并将其保存到磁盘,如果我在Excel中打开文件,我可以看到计算值..
如果我在gembox中打开该文件,并查找计算单元格的值,我会得到0的结果
在flexcel中也存在相同的function..不能从给定的单元格检索计算的值..它返回零..
所以我正在做的是:
- 打开一个现有的Excel文件
- 把一些数字放到一些单元格中
- 以不同的名称将文件保存到磁盘(也使用相同的文件尝试)
- 再次打开文件并查看计算单元格的总计列
该值始终为0 ..我在Excel中打开该文件..该值按预期计算。
GemBox.Spreadsheet当前仅支持由Excel计算的值(因此如果文件由MS Excel保存,则可以读取公式值)。 GemBox.Spreadsheet没有自己的计算引擎。
要以XLS格式读取公式值,请使用接受XlsOptions
枚举的ExcelFile.LoadXls
重载并使用XlsOptions.PreserveWorksheetRecords
或XlsOptions.PreserveAll
。
要以XLSX格式读取公式值,请使用ExcelFile.LoadXlsx
方法,并使用XlsxOptions
枚举值XlsxOptions.PreserveKeepOpen
或XlsxOptions.PreserveMakeCopy
。
编辑(28-09-2016):
我们发布了一个新版本的GemBox.Spreadsheet(版本4.1),其中我们实现了对单元格公式计算的支持, 请参阅发布文章 。
在以下链接中,您可以find演示示例:
http://www.gemboxsoftware.com/Spreadsheet/Examples/Excel-Formula-Calculation/901
你真正的问题是什么?
单元格有两个属性:值和公式。 你看到的是由Excel重新计算的价值。 Gembox,如你所说,不重新计算价值。
如果您需要公式评估,请查找其他库,例如Apache POI 。