[英]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.