私は、Apache poi latestを使用して、30列と100万レコードの大きなExcel 2010を作成しようとしています。私はこのリンクhttp://svn.apache.org/repos/asf/poi/trunk/src/examples/src/org/apache/poi/xssf/usermodel/examples/BigGridDemo.javaの説明に従って作成しています。列幅を列ヘッダーのテキストサイズと同じにしたいのですが。しかし、次のコードでExcelを作成した後にこれを行っているとき
for (int x = 0; x < sheet.getRow(0).getPhysicalNumberOfCells(); x++) {
sheet.setColumnWidth(x, 20*256);
}
非常に時間がかかり、5GBのヒープサイズでもメモリ不足になります。
ありがとう
羊
最初に最初の行またはヘッダーを選択します。ヘッダーのみが行の最大セル数を提供できるためです。
HSSFRow row = wb.getSheetAt(0).getRow(0);
次にautoSizeColumn
、その行の各列で使用します
for(int colNum = 0; colNum<row.getLastCellNum();colNum++)
wb.getSheetAt(0).autoSizeColumn(colNum);
これにより、列の幅がヘッダーの幅と同じに設定されます。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加