ant*_*ken 22 java excel performance autosize apache-poi
我使用以下代码来自动调整电子表格中的列:
for (int i = 0; i < columns.size(); i++) {
sheet.autoSizeColumn(i, true);
sheet.setColumnWidth(i, sheet.getColumnWidth(i) + 600);
}
Run Code Online (Sandbox Code Playgroud)
问题是,如果大型电子表格超过3000行,则每列自动调整大小需要10分钟以上.尽管如此,它对于小文档来说非常快.有什么能帮助自动化更快地工作吗?
ant*_*ken 33
解决方案对我有用:
有可能避免合并区域,所以我可以迭代其他单元格,最后自动调整到最大的单元格,如下所示:
int width = ((int)(maxNumCharacters * 1.14388)) * 256;
sheet.setColumnWidth(i, width);
Run Code Online (Sandbox Code Playgroud)
其中1.14388是"Serif"字体的最大字符宽度和256个字体单位.
自动调整的性能从10分钟提高到6秒.
| 归档时间: |
|
| 查看次数: |
19958 次 |
| 最近记录: |