Как хранить данные напрямую в Apache POI XLS?
Я использую Apache POI HSSF API для Java, чтобы сгенерировать длинный длинный отчет в виде файла XLS. Проблема в том, что дата действительно большая, и моя память не работает перед звонком wb.write(out);
, Поэтому мне интересно, есть ли какой-то способ напрямую или периодически хранить информацию для отчета XLS.
2 ответа
Вы можете попробовать использовать последнюю версию бета-версии POI 3.8 и посмотреть на модель SXSSF. Я знаю, что они пытаются помочь использовать память при чтении из xlsx, но я не уверен, как это будет работать с записью. Хотя стоит посмотреть.
Кроме этого, я думаю, что единственный вариант - увеличить пространство кучи для вашей JVM с помощью -Xmx.
Надеюсь, это поможет!
Вам нужно закрыть объект книги... убедитесь, что он находится вне области видимости и снова открыть документ.. это может помочь вызвать System.gc()
после закрытия документа.
Лучше всего увеличить максимальную память (пространство кучи), выделенную для Java, для лучших результатов.