This question already has answers here:
A POI related code block running dead slow
(3个答案)
5年前关闭。
我正在使用Apache POI创建一些记录的Excel工作表。其中一条记录有16k行。我正在使用
我的问题-是因为我要迭代16k次以自动调整列大小,所以我无法完成写入过程?还是
任何帮助都将受到赞赏。提前致谢。
(3个答案)
5年前关闭。
我正在使用Apache POI创建一些记录的Excel工作表。其中一条记录有16k行。我正在使用
for
循环将记录写入excel工作表,并且在每次迭代中,我都使用autoSizeColumn()
自动调整列的大小。这样,我将无法下载/写入excel文件,因为它要花很长时间才能完成写入过程。在浏览SO时,我遇到一个答案,用户曾提到autoSizeColumn()
的使用会影响性能。因此,为了测试这一点,我删除了autoSizeColumn()
并检查了一下,令我感到惊讶。我的问题-是因为我要迭代16k次以自动调整列大小,所以我无法完成写入过程?还是
autoSizeColumn()
有任何性能影响?如果是这样,我可以使用什么替代方法,以便写入16k(大量)记录以及使列自动调整大小以适合其内容。任何帮助都将受到赞赏。提前致谢。
最佳答案
如果要调整许多列的大小,则autoSizeColumn()
方法会花费大量时间。
解决此问题的一种方法是仅在创建所有行之后,而不是在每次迭代中,才对所需列调用autoSizeColumn()
方法。
此方法的javadoc提到以下内容:
在大张纸上,此过程可能相对较慢,因此在处理结束时,通常每列仅应调用一次。
10-08 19:26