У меня есть веб-приложение на основе 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 или любой другой фреймворк.