Как записать данные файла Excel в OutputStream - PullRequest
0 голосов
/ 17 февраля 2020

У меня есть веб-приложение на основе Java, которое загружает данные в файл Excel. Я использую Apache poi 4 для подготовки рабочей книги (org.apache.poi.xssf.streaming.SXSSFWorkbook). Я проверил метод записи класса книги, он записывает данные в выходной поток. Однако это происходит после того, как полные данные записываются в рабочую книгу, и это занимает много времени из-за огромного количества данных. Я выполняю следующие шаги:

  • Выполнение запроса
  • Создание рабочей книги
  • Перебор набора результатов запроса и создание строк и ячеек с данными. (Я ищу решение, чтобы записать эту вещь прямо в поток)
  • Запись данных в поток. write(OutputStream stream)

Apache org.apache.commons.csv.CSVPrinter записывает данные прямо в поток.

try (CSVPrinter printer = new CSVPrinter(new OutputStreamWriter(outputStream), CSVFormat.DEFAULT)) {
     printer.printRecord("id", "userName", "firstName", "lastName", "birthday");
     printer.printRecord(1, "username1", "UserOne", "LastOne", LocalDate.of(1973, 9, 15));
     printer.println();
     printer.printRecord(2, "username2", "UserTwo", "LastTwo", LocalDate.of(1985, 3, 29));
 } catch (IOException ex) {
     ex.printStackTrace();
 }

Это именно то, что мне нужно. Пожалуйста, предложите, если я смогу добиться этого, используя apache -poi или любой другой фреймворк.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...