Как оценить формулу Excel через API событий XSSF - PullRequest
4 голосов
/ 10 мая 2011

Я читаю файлы XLSX, используя API событий Apache POI, т.е. я читаю содержимое листа XLSX через SAX Parser. Я хочу знать, как мы можем получить вычисленное значение формулы с помощью API событий XSSF.

Я знаю, как это сделать, используя класс FormulaEvaluator. Но так как FormulaEvaluator использует экземпляр класса Workbook, поэтому я не хочу использовать этот подход. (Я читаю файлы Excel, содержащие миллион строк и 100 столбцов, поэтому, если я создаю объект Workbook этого Excel, моему серверу приложений не хватает памяти и, следовательно, я использую Event API)

Как выполнить оценку при разборе события без экземпляра Workbook?

1 Ответ

6 голосов
/ 10 мая 2011

Обычно кэшированное значение записывается в ячейку, поэтому вы можете просто прочитать это (не нужно оценивать)

Взяв в качестве примера ячейку этой формулы:

  <c r="B10">
    <f>SUM(B1:B9)</f>
    <v>4995</v>
  </c>

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

...