如何加快自动化apache POI的列?

我使用下面的代码来自动化电子表格中的列:

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

问题是在超过3000行的大型电子表格中,每个列需要10多分钟的时间自动resize。 尽pipe小文件的速度非常快。 有什么可以帮助autosizing更快地工作吗?

解决scheme为我工作:

有可能避免合并的区域,所以我可以遍历其他单元格,最后自动调整到像这样的最大的单元格:

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

其中1.14388是“Serif”字体和256个字体单位的最大字符宽度。

自动调节的性能从10分钟提高到6秒。