Excel公式不更新单元格

我正在使用Apache POI来更改Excel表格中的单元格。 在更改值后,具有与已更改的单元格对应的公式的单元格不会更新。

当我进入excel并用公式单击单元格,然后单击功能栏时,公式更新。

我将计算选项设置为自动更新。

快速示例。

行:

[A2 + A3] [1] [2]

这里A1等于3

当我使用POI更改它时:

[A2 + A3] [2] [5]

A1仍然等于3,直到我点击该单元格。

刷新工作簿或工作表也不起作用。 这是Excel或POI的问题吗? 任何人都可以想到解决方法吗?


如果您使用的是XSSF工作簿,则可以按照以下方式重新评估所有公式单元格:

XSSFFormulaEvaluator.evaluateAllFormulaCells(workbook)

如果您使用HSSF工作簿,则存在类似的API:

HSSFFormulaEvaluator.evaluateAllFormulaCells(workbook)

或者,具体取决于你如何设置以及你想要完成什么,你应该能够在这里找到你的解决方案


如果您的工作表有一些公式,例如A3=sum(A1:A2) ,并且它在A1=5, A2 =4. 现在如果用2来改变A2的值就好

sh.getRow(0).getCell(0).setCellValue(2); //设置A1 = 2并执行写操作,检查A3的值是否仍然显示9.看起来不对,但实际上不是。 重点是Excel缓存先前计算的结果,并且需要触发重新计算才能更新它们。

wb.getCreationHelper().createFormulaEvaluator().evaluateAll(); 或与

wb.setForceFormulaRecalculation(true); 然后执行写入操作。 这会给你正确的结果。 详情请点击这里


您必须明确触发重新计算。 请参阅重新计算公式部分,了解为什么以及如何执行此操作。

链接地址: http://www.djcxy.com/p/27759.html

上一篇: Excel Formula Not Updating Cell

下一篇: refresh Excel sheet after cell update