Как хранить данные напрямую в Apache POI XLS?

Я использую Apache POI HSSF API для Java, чтобы сгенерировать длинный длинный отчет в виде файла XLS. Проблема в том, что дата действительно большая, и моя память не работает перед звонком wb.write(out);, Поэтому мне интересно, есть ли какой-то способ напрямую или периодически хранить информацию для отчета XLS.

2 ответа

Решение

Вы можете попробовать использовать последнюю версию бета-версии POI 3.8 и посмотреть на модель SXSSF. Я знаю, что они пытаются помочь использовать память при чтении из xlsx, но я не уверен, как это будет работать с записью. Хотя стоит посмотреть.

Кроме этого, я думаю, что единственный вариант - увеличить пространство кучи для вашей JVM с помощью -Xmx.

Надеюсь, это поможет!

Вам нужно закрыть объект книги... убедитесь, что он находится вне области видимости и снова открыть документ.. это может помочь вызвать System.gc() после закрытия документа.

Лучше всего увеличить максимальную память (пространство кучи), выделенную для Java, для лучших результатов.

Другие вопросы по тегам