2016-05-17 143 views
0

我想評估公式並從保持其值的單元格中移除公式。這怎麼可以使用Apache POI完成?評估公式並從單元格中刪除公式

下面是我的代碼,我評估所有的公式。

 FormulaEvaluator evaluator = template.getCreationHelper().createFormulaEvaluator(); 
     int sheetCount = template.getNumberOfSheets(); 
     for(int sheetIndex = 0; sheetIndex < sheetCount; sheetIndex ++) { 
      sheet = dfaTemplate.getSheetAt(sheetIndex); 
      for (Row r : sheet) { 
       for (Cell c : r) { 
        if (c.getCellType() == Cell.CELL_TYPE_FORMULA) { 
         evaluator.evaluateFormulaCell(c); 
        } 
       } 
      } 
     } 
+1

您是否試過'evaluateator.evaluateInCell(cell)'?請參閱https://poi.apache.org/apidocs/org/apache/poi/ss/usermodel/FormulaEvaluator.html#evaluateFormulaCell(org.apache.poi.ss.usermodel.Cell)。 – Priyesh

+0

@Priyesh:也許你應該把它寫成答案而不是評論。 – jmarkmurphy

回答

1

您應該使用evaluator.evaluateInCell(cell)而不是evaluator.evaluateFormulaCell(c)。如果單元格包含公式,evaluateInCell將計算公式,並將公式結果放回到單元格中,而不是舊公式。

有關更多信息,請參閱evaluator.evaluateInCell(cell)