Подтвердить что ты не робот

Как установить формулы в ячейках с помощью Apache POI?

В настоящее время я использую Apache POI для Java, чтобы устанавливать формулы в ячейках.

Но после запуска программы и открытия файла Excel, который я создал и обработал, ячейки с формулой включают формулу в виде строки, а не значение, которое должна была бы вернуть формула.

4b9b3361

Ответ 1

Объект HSSFCell имеет методы .setCellType и .setCellFormula, которые вы должны вызвать следующим образом:

// "cell" object previously created or looked up
String strFormula= "SUM(A1:A10)";
cell.setCellType(HSSFCell.CELL_TYPE_FORMULA);
cell.setCellFormula(strFormula);

Ответ 2

Следующий код работал отлично для меня, надеюсь, что это может быть полезно кому-то.

cell.setCellType(Cell.CELL_TYPE_FORMULA);
cell.setCellFormula("SUM(C70:C76)");

Ответ 3

Apache POI не поддерживает пользовательские функции.

Из документации:

Обратите внимание, что пользовательские функции не поддерживаются, и вряд ли сделать это в ближайшее время... по крайней мере, пока не будет VB реализация на Java!

Ответ 4

Константы ячеек устарели и будут удалены из версии 4.0 вместо использования ячейки

CellType.FORMULA

String formula= "SUM(B4:B20)";
cell.setCellType(CellType.FORMULA);
cell.setCellFormula(formula);

Ответ 5

Вы можете написать методы VBA как формулу ячейки без каких-либо проблем, поэтому, возможно, конвертируйте свою формулу в метод VBA и попробуйте это.