繁体   English   中英

Excel公式未更新单元格

[英]Excel Formula Not Updating Cell

我正在使用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); 然后执行写操作。 这将为您提供正确的结果。 详情请查看此处

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM