我在某些单元格中有一个公式,它基于其他单元格中的值(比如A1,B1),而这些单元格又从数据库中填充。我的公式正确,但它始终考虑A1中的空值, B1 ...也就是说,在打开我的excel时,具有公式的单元格中的值始终为零。无论如何我在生成的excel中更改它。
我希望它考虑动态填充的单元格值然后显示结果。请帮助!!!!!
答案 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