簡體   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