Java ApachePOI中的AutoSizeColumn性能影响

Java ApachePOI中的AutoSizeColumn性能影响,java,excel,apache,apache-poi,Java,Excel,Apache,Apache Poi,我正在使用ApachePOI创建一些记录的Excel表。一条这样的记录有16k行。我使用for循环将记录写入excel工作表,在每次迭代中,我使用autoSizeColumn自动调整列的大小。这样,我就无法下载/写入excel文件,因为完成编写过程需要花费很长时间。当我浏览SO时,我遇到了一个答案,其中一位用户提到使用autoSizeColumn会影响性能。因此,为了测试这一点,我移除了autoSizeColumn并进行了检查,奇怪的是它工作得很好 我的问题-是不是因为我迭代了16k次来自动调整

我正在使用ApachePOI创建一些记录的Excel表。一条这样的记录有16k行。我使用for循环将记录写入excel工作表,在每次迭代中,我使用autoSizeColumn自动调整列的大小。这样,我就无法下载/写入excel文件,因为完成编写过程需要花费很长时间。当我浏览SO时,我遇到了一个答案,其中一位用户提到使用autoSizeColumn会影响性能。因此,为了测试这一点,我移除了autoSizeColumn并进行了检查,奇怪的是它工作得很好

我的问题-是不是因为我迭代了16k次来自动调整列的大小,所以我无法完成编写过程?或者autoSizeColumn是否有任何性能影响?如果是这样的话,我可以使用什么替代方法来写入16K的大量记录,并自动调整列的大小以适应其内容

感谢您的任何帮助。提前感谢。

如果有很多列需要调整大小,autoSizeColumn方法确实会花费很多时间。 这个问题的一个解决方案是仅在创建了所有行之后,而不是在每次迭代中,才为所需的列调用autoSizeColumn方法。 此方法的javadoc提到以下内容:

在大型工作表上,此过程可能相对较慢,因此通常在处理结束时,每列只调用一次。如果有许多列需要调整大小,则autoSizeColumn方法确实会花费大量时间。 这个问题的一个解决方案是仅在创建了所有行之后,而不是在每次迭代中,才为所需的列调用autoSizeColumn方法。 此方法的javadoc提到以下内容:

在大型工作表上,此过程可能相对较慢,因此通常在处理结束时,每列只调用一次