Записывать файл XSSF строка за строкой в ​​выходной поток?(POI в Java) - PullRequest
1 голос
/ 07 февраля 2012

У меня есть огромное количество данных, которые я хотел бы передавать построчно.Я думал, что вызов workbook.write (stream) после изменения значения каждой строки добавит каждую запись в выходной поток, но я ошибся.Таким образом, размер файла предполагает / соответствует количеству строк, которые у меня есть, но внутри самого файла есть только 1 строка (это первая записанная строка).

Есть ли способ сделать это?Так же, как я мог бы использовать текстовый файл?

Я посмотрел на реализацию BigGrid, и это выглядит немного излишним для того, что я пытаюсь сделать.

Спасибо!

1 Ответ

4 голосов
/ 07 февраля 2012

Вы не можете выполнить потоковую запись всего файла за один раз, формат файла не работает таким образом. Есть ссылки между различными частями файла, которые исключают его. Формат файла просто не похож на CSV!

Вместо этого вы можете хранить несколько небольших частей в памяти, выполнять потоковую запись больших частей электронной таблицы во временный файл, а затем повторно собирать его в памяти с небольшим объемом памяти для вывода. Для этого посмотрите (довольно новый) SXSSF код пользовательской модели в POI.

...