如何加快自动化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秒。