обеспечивает, но сейчас я переработал свое решение, чтобы обойти ограничения.
ужно перебирать таблицу Excel строка за строкой, но не все сразу. Я хочу оставить поток открытым для электронной таблицы, а затем передать этот объект другому методу. Этот метод будет время от времени запрашивать следующую строку данных. Этот метод уже установлен, поэтому я не могу его изменить.
Я пытался сделать это изначально сXSSFWorkbook
, который работал очень хорошо, пока я не исчерпал память на реальных данных.
Затем я попытался переключиться на парсер SAX, используяXSSFSheetXMLHandler
с пользовательским парсером, похожим на примерныйXLSX2CSV
предоставлено проектом Apache POI. Но это приводит к одновременной обработке всех строк; и если я сохраню их в памяти для последующего чтения, у меня также закончится память. У меня также не было доступа кDataFormatter
больше, что мне нужно для обработки значения ячейки.
Может кто-нибудь указать мне пример / класс, который позволит мне сделать это?