2016-05-17 163 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

'evaluator.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.evaluateFormulaCell(c)の代わりにevaluator.evaluateInCell(cell)を使用してください。セルに式が含まれている場合は、evaluateInCellが式を評価し、古い式の代わりに式結果をセルに戻します。

詳細については、evaluator.evaluateInCell(cell)を参照してください。

関連する問題