首页 > 其他 > 详细

NPOI 的 autoSizeColumn() 方法

时间:2019-02-20 14:26:08      阅读:685      评论:0      收藏:0      [点我收藏+]

1. 起因

系统中有个导出数据的功能,但测试发现当要导出的数据达到几百条的时候导出时间大概要30几秒,需要优化。

2. 排查过程

  1. 首先排除取数据导致。
  2. 先把循环赋值里面的 autoSizeColumn() 注释掉再看导出,果然秒出。

3. 原因分析

仔细看 getColumnWidth() 方法的实现,其实它在里面会遍历传入的这一行的每一行以确定其单元格宽度,取最大的作为列宽。这本来也不算什么,但是错就错在之前的 autoSizeColumn() 被放在写入每一行数据的步骤当中调用,从而导致遍历的次数成几何级增长。

于是最终的解决办法就是在把所有数据都写入之后,再对每列调一次 autoSizeColumn() 就可以了。

NPOI 的 autoSizeColumn() 方法

原文:https://www.cnblogs.com/cos0930/p/10406214.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!