2016-04-15 2 views
1

Когда я запускаю код folowwing, он просто печатает первую Формулу, но не вторую, я не знаю почему.Результат печати 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. Если я открою его с помощью microsoft excel, я не смогу увидеть оба моих итоговых значения. Но если я нажму на активацию модификации, появятся оба моих итоговых значения. Я не понимаю.

+0

Что такое «я» в третьей строке вашего кода? –

+0

позиция ячейки. В моем случае позиция ячейки Total в конце моей строки дней для вычисления числа дней – garywald

+0

Я не вижу никакого кода [оценивая формулы перед сохранением] (https: //poi.apache. org/spreadsheet/eval.html) - вы забыли этот шаг? – Gagravarr

ответ

1

Ответ прост!

После поставили клетку с Formule, нам нужно закодировать оценщик:

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

Благодарности Gagravarr !!