Apache POI Formula Evaluator не вычисляет ячейку, содержащую формулу - PullRequest
0 голосов
/ 01 марта 2019

У меня есть файл Excel, в котором есть формулы в некоторых ячейках и в некоторых полях ввода, на основании которых вычисляется значение в ячейке формулы.

После установки значений в соответствующих ячейках с помощью apache poi setCellValue() Значения устанавливаются в Excel.Эта часть работает .Затем я запускаю

FormulaEvaluator evaluator = workbook.getCreationHelper().createFormulaEvaluator();
evaluator.evaluate(cell);

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

Моя проблема заключалась в том, что после запуска FormulaEvaluator когда я выбираю значение ячейки, используя cell.getNumericCellValue(), он выбирает мне предварительно вычисленное или более старое значение ячейки вместо новых вычисленных значений из новых значений, установленных в ячейках.

1 Ответ

0 голосов
/ 01 марта 2019

Я думаю, что вы ожидаете другое поведение, отличное от того, которое обеспечивает метод:

Использование FormulaEvaluator.evaluate (Cell cell)

Это оценивает данную ячейкуи возвращает новое значение, не затрагивая ячейку

Возможно, вы захотите проверить, лучше ли соответствуют evaluateFormulaCell или evaluateInCell ваши требования.

См. также документацию по адресу http://poi.apache.org/components/spreadsheet/eval.html

...