org.apache.poi пишет формулу xls суммы ячеек

Мне нужно написать формулу xls, которая суммирует несколько ячеек из одного столбца. Вывод в xls этой формулы выглядит так:

SUM(F5;F9;F13;F16)

Я создал эту формулу в библиотеке org.apache.poi.

Cell cell = rowSum.createCell(j);
cell.setCellType(Cell.CELL_TYPE_NUMERIC);

// column number like (A or B) in excel to use in formula
String x = CellReference.convertNumToColString(j);
cell.setCellType(HSSFCell.CELL_TYPE_FORMULA);

// for total sum row
String totalSumFormula = "SUM(";

for(int s=0; s<sumRowNumbers.size(); s++) {
int tempSumRowNumber = sumRowNumbers.get(s);
tempSumRowNumber++;
    totalSumFormula += (x + tempSumRowNumber);

    if(s+1 != sumRowNumbers.size()) {
        totalSumFormula += ";";
} else {
    totalSumFormula += ")";
    }
 }
 cell.setCellFormula(totalSumFormula);

но, к сожалению, я получаю сообщение об ошибке, которое не могу понять:

[FormulaParseException: Parse error near char 6 ';' in specified formula 'SUM(F5;F9;F13;F16)'. Expected ',' or ')'] 

Можете ли вы дать мне какой-либо совет? Как с этим бороться?


person masterdany88    schedule 10.06.2014    source источник


Ответы (1)


Эй, я нашел решение для моей проблемы. Я должен использовать разделитель: "," вместо ";".

Теперь это работает как шарм. Правильная сгенерированная формула в библиотеке:

SUM(F5,F9,F13,F16)

который генерирует формулу в файле excel:

=SUM(F5;F9;F13;F16)
person masterdany88    schedule 10.06.2014
comment
Формат файла работает только с разделителями/строками в американском стиле, даже если Excel иногда локализует их на дисплее. - person Gagravarr; 10.06.2014