主要有两个地方耗时比较长,
一是获取数据耗时, 可以单独把取数据逻辑拿出来在命令行运行一下用时多少。
另一个就是autoSizeColumn, api描述说数据较大时耗时非常大, 建议在结果的时候调用一次.(ps:autoSizeColumn会遍历每一列的每一行数据获取最大长度)
我测试了10w条日志记录,38列,sheet1(6w)和sheet2(4w),把autoSizeColumn放在写excel的中间,完成时间得在2.5 到 3 分钟左右,而我去掉autoSizeColumn,每一列都是默认的,耗时只有10s左右不到吧!具体多少时间我没计算,但是,很快!
如果需要设置列的宽度,可以记录每一列的最大值,然后只用计算的最大值设置列的长度。