2016-04-15 16 views
1

Wenn ich den Folowwing-Code ausführe, druckt er nur die erste Formel, aber nicht die zweite, ich weiß nicht warum.Ergebnis drucken 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); 
    } 

Könnten Sie mir bitte helfen und lassen Sie mich wissen, wenn ich etwas vergessen mein Ergebnis zu haben.

Dank

Ich habe nur ein Problem gesehen: Ich öffne meine excel mit Libreoffice. Wenn ich es mit Microsoft Excel öffne, kann ich meine beiden Summen nicht sehen. Aber wenn ich auf "Änderung aktivieren" klicke, erscheinen beide Summen. Ich verstehe nicht.

+0

Was ist "ich" in der dritten Zeile Ihres Codes? –

+0

die Position der Zelle. In meinem Fall, die Position der Zelle Summe am Ende meiner Zeile von Tagen zur Berechnung der Anzahl der Tage – garywald

+0

Ich kann keinen Code [Auswertung der Formeln vor dem Speichern] (https: //poi.apache. org/talkline/eval.html) - Hast du diesen Schritt vergessen? – Gagravarr

Antwort

1

Die Antwort ist einfach!

Nachdem haben eine Zelle mit einem Formule setzen, müssen wir einen Auswerter kodieren:

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

Dank Gagravarr !!