2016-04-15 17 views
1

次のコードを実行すると、最初の数式は印刷されますが、2番目の式は印刷されません。理由はわかりません。印刷結果XSSFCell.setCellFormula()

for(int r = 13;r<15;r++){ 
     row = sheet.getRow(r); 
     cell = row.createCell(i, XSSFCell.CELL_TYPE_FORMULA); 
     cell.setCellStyle(StyleOfThisCell.getTotalStyle(workbook)); 
     String formule = "SUM(C"+(row.getRowNum()+1)+":"+CellReference.convertNumToColString(row.getCell(i-1).getColumnIndex())+(row.getRowNum()+1)+")"; 
     cell.setCellFormula(formule); 
    } 

私の結果を得るために何かを忘れてしまったら教えてください。

おかげ

私は問題を見てきました: 私はLibreOfficeのと私のExcelを開きます。 Microsoft Excelで開くと、両方の合計が表示されません。しかし、私は変更を有効にするをクリックすると、私の合計の両方が表示されます。わかりません。

+0

コードの3行目に「i」とは何ですか? –

+0

セルの位置。 私のケースでは、セルの位置は、日数を計算する日数の最後に集計されます – garywald

+0

[保存する前に式を評価する](https://poi.apache。 org/spreadsheet/eval.html) - あなたはそのステップを忘れましたか? – Gagravarr

答えて

1

答えは簡単です!

フォーミュラで細胞を入れた後、我々は、評価をコーディングする必要があります。

FormulaEvaluator evaluator = workbook.getCreationHelper().createFormulaEvaluator(); 
evaluator.evaluateAll(); 

おかげGagravarrを!