AutosizeColumns на SXSSFWorkbook

Можно ли автосогласовывать столбцы в потоковой SXSSFWorkbook? Я реализовал функцию экспорта, чтобы экспортировать список объектов в excel. Сначала я использовал XSSFWorkbook (не потоковая передача), и после того, как все ячейки были созданы, я авторизовал все столбцы, в результате получился хороший файл excel.

Для проблем с производительностью мы хотели сменить книгу на поточную версию, но это привело к созданию NullPointer в org.apache.poi.ss.util.SheetUtil.getCellWidth.

Можно ли вызвать autoSizeColumns для SXSSFWorkbook?

Im использует poi-ooxml 3.9, но у меня такая же проблема в 3.8.

Ответ 1

Вам нужно убедиться, что каждая ячейка имеет значение.

Мы используем следующий код для установки строкового значения в ячейке:

Cell c = row.createCell(i);
c.setCellValue(text == null ? "" : text );

Ответ 2

Используйте sheet.isColumnTrackedForAutoSizing(0);  для первого и последующего использования для другого столбца, я столкнулся с исключением всякий раз, когда выполняется код autoSizeColumn (0). Используя приведенный выше код, я решил проблему, и было бы хорошо расширить ширину столбца на основе текста.