Из-за проблемы с памятью мы используем подход Sax parser для apache poi для чтения огромных файлов excel .xlsx. Однако этот подход, по-видимому, имеет ограничение на ячейки формулы. Кажется, он считывает значение из значения кэшированной формулы. Я не могу найти лучшее решение для пересчета пересчета, чтобы обновить значение. Кто-нибудь сталкивается с такой же проблемой? Благодарю.Переоценка ячейки вычисления формулы при использовании парсера Sax Apache-Poi
0
A
ответ
1
Общее решение для этого, вероятно, очень сложно, поскольку переоценка формулы потенциально должна иметь произвольный доступ к любой ячейке на любом листе, поскольку формулы могут ссылаться на них, что вы не можете сделать при использовании SAX.
Возможно, вы сможете реализовать свой собственный оценщик формулы, который работает с рядом ограничений на тип формул и ссылок, которые возможны, но это, вероятно, немного необходимо сделать.
См. XSSFFormulaEvaluator
для реализации для .xlsx, которая в значительной степени зависит от классов XSSFWorkbook/XSSFSheet/XSSFRow/XSSFCell.
Смежные вопросы
- 1. Получение атрибутов парсера SAX
- 2. Кодировка парсера Sax в Java
- 3. XML парсера SAX - игнорировать несвязанное исключение префикса
- 4. Формулы для вычисления геопространственности
- 5. вычисления значений из формулы
- 6. Ошибка вычисления формулы Jexcel
- 7. Анализ XML с использованием парсера sax
- 8. Настройка кодировки для парсера SAX в Python
- 9. Как вернуть данные из парсера SAX Python?
- 10. Переопределенная переменная HashMap с endElement парсера sax
- 11. Как хранить каждую строку при использовании парсера SAX для синтаксического анализа заданного xml-файла
- 12. jaxb unmarshal, обрабатываемый обработанным xml при использовании парсера SAX по умолчанию?
- 13. Как получить имя и значение атрибутов из xml при использовании парсера libxml2 sax?
- 14. При использовании парсера SAX для синтаксического анализа XML-с «&» как часть данных, синтаксический анализатор разбивает
- 15. Ошибка анализа SAX при использовании ISBN
- 16. java.lang.ExceptionInInitializerError при использовании анализатора SAX XMI
- 17. Переполнение стека при использовании комбинаторов парсера
- 18. Ошибка при использовании настраиваемой конфигурации парсера шкипера
- 19. Как вызвать вычисление формулы в xlsx при записи значения ячейки
- 20. Алгоритм парсера формулы и математического выражения
- 21. Получение ошибки 1004 при настройке формулы ячейки
- 22. Excel: Динамический INDIRECT при копировании формулы ячейки
- 23. Механизм вычисления формулы для сети
- 24. Формулы для вычисления столбца номера
- 25. ApachePOI генерирует org.apache.poi.POIXMLException: java.lang.reflect.InvocationTargetException
- 26. Переоценка объекта при нажатии кнопки
- 27. Номер ячейки из формулы
- 28. Как читать текст ячейки, когда формула используется для вычисления ячейки
- 29. Проблема с дизайном при использовании реализации парсера сакса
- 30. Копирование значений ячейки (не формулы ячейки)
Что случилось со значениями, кэшированными в файле Microsoft Excel? – Gagravarr
По некоторым причинам значение ячейки формулы не является триггером для пересчета. Тогда то, что мы получили, это старая ценность, не обновляется. Даже приложение Excel имеет возможность принудительного пересчета при открытии. Другой пример упоминается в документе apache poi: http://poi.apache.org/spreadsheet/eval.html (Пересчет формул) – neojh