web-dev-qa-db-ja.com

SXSSFWorkbookのAutosizeColumns

ストリーミングSXSSFWorkbookでautoSizeColumnsを実行することは可能ですか?オブジェクトのリストをExcelにエクスポートするためのエクスポート機能を実装しました。最初はXSSFWorkbook(ストリーミングではない)を使用し、すべてのセルが作成された後、すべての列のサイズを自動化して、NiceExcelファイルを作成しました。

パフォーマンスの問題のために、ワークブックをストリーミングバージョンに変更したかったのですが、これによりorg.Apache.poi.ss.util.SheetUtil.getCellWidthにNullPointerが作成されました。

SXSSFWorkbookのautoSizeColumnsを呼び出すことは可能ですか?

Poi-ooxml 3.9を使用していますが、3.8でも同じ問題が発生します。

16
sterym

すべてのセルに値があることを確認する必要があります。

次のコードを使用して、文字列値をセルに設定します。

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

sheet.isColumnTrackedForAutoSizing(0);を最初に使用し、その後他の列に使用します。autoSizeColumn(0)を実行したコードが実行されるたびに、例外が発生しました。上記のコードを使用することで問題は解決しました。テキストに基づいて列幅も拡張することをお勧めします。

0
Virendra khade