29

スプレッドシートの列を自動サイズ調整するために、次のコードを使用します。

for (int i = 0; i < columns.size(); i++) {
   sheet.autoSizeColumn(i, true);
   sheet.setColumnWidth(i, sheet.getColumnWidth(i) + 600);
}

問題は、3000 行を超える大規模なスプレッドシートの場合、各列の自動サイズ調整に 10 分以上かかることです。ただし、小さなドキュメントの場合は非常に高速です。自動サイズ調整を高速化するのに役立つものはありますか?

4

2 に答える 2

47

私のために働いた解決策:

マージされた領域を回避することができたので、他のセルを繰り返し処理し、最終的に次のように最大のセルに自動サイズ変更できました。

int width = ((int)(maxNumCharacters * 1.14388)) * 256;
sheet.setColumnWidth(i, width);

ここで、1.14388 は「Serif」フォントの最大文字幅で、256 フォント単位です。

自動サイズ調整のパフォーマンスが 10 分から 6 秒に向上しました。

于 2013-09-25T14:09:49.230 に答える