1. 程式人生 > >POI生成EXCEL,公式不自動執行的問題

POI生成EXCEL,公式不自動執行的問題

場景:POI讀取Excel模板。 當使用POI操作Excel時,發現由POI生成的公式能夠在開啟Excel是被執行, 而事先手工寫入Excel模板檔案的公式則不自動被呼叫,必須手動雙擊該Cell才能生效。

 採取的辦法: 1.使用cell.setCellFormula方法重新在制定Cell裡寫入公式。 2.使用sheet.setForceFormulaRecalculation(true);方法強制讓改Sheet執行公式。 當然,在方法2能夠生效的情況下我們還是推薦使用方法2來解決這個問題。

使用poi生成excle報表時遇到這樣的問題,當前單元格沒值,在設定當前單元格為空時遇到問題,因為沒值的這個單元格在後面的公式中被引用,因為是空導致公式不能解析,但發現excel本身的這種情況卻沒有問題,遂發現是我在poi設定空值時使用的是:sheet.getRow(i).getCell(j).setCellValue(""); 該空值不被excel所識別,後發現解決方案如下: 


將該單元格型別設定為:HSSFCell.CELL_TYPE_BLANK型別即可。 
//將當前單元格由數值型別設定為空 (設定為空的單元格才能參與excel公式計算,而""," " null等均不能參與計算) 
sheet.getRow(k).getCell(j).setCellType(HSSFCell.CELL_TYPE_BLANK);