基于SpringBoot的多线程实现快速导入EXCEL

前言:笔者已经做过多个版本的EXCEL导入功能。此次出一版基于SpringBoot的多线程实现快速导入EXCEL,效率之高体现在速度之快,单次解析的数据量之大。对比如下:

第一版:导入5万条数据,花费近一个时

第二版:导入10万条数据,花费23分钟,优化后达到了15分钟。

第三版:导入112400条数据,花费3秒钟,极限是15万。数据再增大将会造成内存溢出。

第三版:采用了多线程 

1、不分服务,导入100万条数据,花费30秒之内。

2、分服务,速度有所下降,80秒之内。

效果图如下:

基于SpringBoot的多线程实现快速导入EXCEL_第1张图片

基于SpringBoot的多线程实现快速导入EXCEL_第2张图片

基于SpringBoot的多线程实现快速导入EXCEL_第3张图片

注:导入数据速度跟数“量”的大小有关,跟条数关系不小。换句话说,单位单元格字符越多,速度越慢。

修改于:2019-04-24。

今天我几乎要推翻之前的观点,昨天我将EXCEL的数量达到极限,经测试发现,决定插入数据的速度的重点不在于是否使用了多线程,而是在于分段插入的方法。所以我将方法提取出来之后仍然是可行的,这样以来,代码也会简洁很多,方便阅读、更新、维护。

总结一下,导入EXCEL时追求量与速度的重点是:

1、程序能够解析的量,这个能决定了你List的大小。

2、插入时分段插入,例如:10000条插入一次。

代码已发布到个人网站(www.syjalor.com)。尽请关注,谢谢!

链接:http://www.blog.syjalor.com/post/32

更多更全案例,百度一下:

嘉乐博客系统

www.syjalor.com

www.blog.syjalor.com

需要参考代码的朋友记得到站内给我留言或直接找客服,谢谢!

你可能感兴趣的:(基于SpringBoot的多线程实现快速导入EXCEL)