excel中的公式不考虑单元格中动态生成的值

时间:2013-07-17 15:38:03

标签: excel apache-poi

我在某些单元格中有一个公式,它基于其他单元格中的值(比如A1,B1),而这些单元格又从数据库中填充。我的公式正确,但它始终考虑A1中的空值, B1 ...也就是说,在打开我的excel时,具有公式的单元格中的值始终为零。无论如何我在生成的excel中更改它。

我希望它考虑动态填充的单元格值然后显示结果。请帮助!!!!!

1 个答案:

答案 0 :(得分:2)

如果您的工作表有一些说A3=sum(A1:A2)的公式,则计算得很好,A1 = 5,A2 = 4。现在如果用2更改A2的值,如

sh.getRow(0).getCell(0).setCellValue(2);  // set A1=2 

并执行写入操作,检查A3的值仍然显示9.这似乎是错误的,但实际上并非如此。 重点是Excel会缓存先前计算的结果,您需要触发重新计算以更新它们。

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

 wb.setForceFormulaRecalculation(true);

然后执行Write操作。这将为您提供正确的结果。详细检查here