我正在使用 Excel 文件作为源导出带有 Apache POI 的 Excel 文件,对于某些单元格(不是全部)仅引用其他单元格(如 ='worksheet2'.B13
)或使用引用的单元格计算值(如 ='worksheet2'.C13 + 'worksheet2'.D13
),它们只显示零(0) 而不是正确的值。
奇怪的是,当我单击公式并更改其中的某些内容时,例如键入空格并删除它,然后键入 enter,会显示正确的值!
有关信息,这些单元格的类型是“数字/标准”。
我还在某处读到我应该在“Excel选项”中检查“启用迭代计算”,但它对我不起作用。
预先感谢您的帮助
最佳答案
在@JohnBustos 和@Gagravarr 的帮助下,我使用以下方法解决了问题:wb.getCreationHelper().createFormulaEvaluator().evaluateAll();
显然,Excel 缓存了以前计算的结果(在我的例子中,它是源 Excel 文件中的零),我们需要触发 重新计算 更新它们。
见此链接:http://poi.apache.org/spreadsheet/eval.html/部分:“重新计算公式”
关于Excel 单元格显示零而不是计算/引用值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26592561/