Spring Boot 入门(十二):报表导出,对比poi、jxl和esayExcel的效率

本片博客是紧接着Spring Boot 入门(十一):集成 WebSocket, 实时显示系统日志写的

关于poi、jxl和esayExcel的介绍自行百度。

jxl最多支持03版excel,所以单个sheet页面最多只能导出65536条数据。

我直接将excel导入到浏览器并打开,以下统计导出时长指将数据从数据库查询,并写入到excel的过程。不包括打开excel所消耗的时间

为了接近真实场景,我建了一个表,一共有32个字段,其中2个id:一个自增长、一个UUID,10个int型字段,10个String字段,10个datatime字段;导出的excel包含了32个字段

我每次导出一个excel后,直接将jvm的内存清空,再进行下一个excel的导出,保证导出excel不受其它线程的影响

我只是为了比较性能,所以没有对excel的样式进行过多的渲染

poi方式,我使用的是刷新硬盘的方式,数据量大于设置的值,就将内存中的数据刷新到硬盘,降低OOM的概率,同时也增加了导出效率

1.pom依赖

以下是poi、jxl和esayExcel的全部依赖

1 <!--begin poi--> 2 <dependency> 3 <groupId>org.apache.poi</groupId> 4 <artifactId>poi</artifactId> 5 <version>${poi.version}</version> 6 </dependency> 7 8 <dependency> 9 <groupId>org.apache.poi</groupId> 10 <artifactId>poi-ooxml</artifactId> 11 <version>${poi.version}</version> 12 </dependency> 13 <!--end poi--> 14 <!--begin jxl--> 15 <dependency> 16 <groupId>net.sourceforge.jexcelapi</groupId> 17 <artifactId>jxl</artifactId> 18 <version>2.6.10</version> 19 </dependency> 20 <!--end jxl--> 21 <!--begin esayExcel--> 22 <dependency> 23 <groupId>com.alibaba</groupId> 24 <artifactId>easyexcel</artifactId> 25 <version>1.1.2-beat1</version> 26 </dependency> 27 <!--end esayExcel-->

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wpjgfz.html