✅作者简介:CSDN内容合伙人、信息安全专业在校大学生🏆
🔥系列专栏 : 狂神说JAVA系列笔记
📃新人博主 :欢迎点赞收藏关注,会回访!
💬个人格言:舞台再大,你不上台,永远是个观众。平台再好,你不参与,永远是局外人。能力再大,你不行动,只能看别人成功!没有人会关心你付出过多少努力,撑得累不累,摔得痛不痛,他们只会看你最后站在什么位置,然后羡慕或鄙夷。
常用场景
1、 将用户信息导出为excel表格
2、将Excel表中的信息导入到数据库
在开发中我们经常会涉及到excel的处理,如导出Excel,导入Excel到数据库中!
操作Excel目前比较流行的就是 Apache POI和阿里巴巴的easyExcel!
Apache POI
Apache POI 官网 https://poi.apache.org/
easyExcel
easyExcel 官网地址 https://easyexcel.opensource.alibaba.com/
EasyExcel是阿里巴巴开源的一个excel处理框架,以使用简单,节约内存著称。
它能大量减少占用内存的主要原因是在解析Excel时没有将文件数据一次性全部加载到内存中,而是从一个磁盘上一行行读取数据,逐个解析。
内存问题:POI =100w 先加载到内存,再写入文件 EasyExcel 1
下图是EasyExcel和POI造解析Excel的对比图
官方文档:EasyExcel · 语雀
创建项目
1、建立一个空项目kuang-excel
2、再创建普通Maven的Moudle kuang-poi
3、添加依赖
xLs(03)和xLs(07)的版本号需要相同,否则会报错
java.lang.NoSuchFieldError: DEFAULT
pom.xml
4、Excel表格中的几个概念:
03版最多支持65536行数据,07没有限制
对象说明
测试
直接创建测试类,编写测试即可:
数据批量导入
1.1 大文件写HSSF
1.2 大文件写XSSF
缺点:写数据时速度非常慢,非常耗内存,数据量过大时会发生内存溢出;
优点:可以写较大的数据量,没有限制;
只做一下修改
1.3 大文件写SXSSF
优点:可以写非常大的数据量,如100万条甚至更多条,写数据速度快,占用更少的内存;
缺点:过程中会产生临时文件,需要清理临时文件;
修改为:
运行上述操作结果如下:
2.1 Excel 03类型
2.2 Excel 07类型
2.3 读取不同类型
注意:读取不同的数据类型,是工作上的重点,这段类型匹配代码工作时可直接复制
新版本区别
CellType 枚举类 源码
测试
注意类型转换类型
2.4 计算公式
easyExcel官网地址: https://github.com/alibaba/easyexcel
EasyExcel是阿里巴巴开源的一个excel处理框架,以使用简单,节约内存著称。
EasyExcel能大量减少占用内存的主要原因是在解析Excel时没有将文件数据一次性全部加载到内存中,而是从一个磁盘上一行行读取数据,逐个解析。
下图是EasyExcel和POI在解析Excel时的对比图(时间与空间的相互取舍)。
1、导入依赖
pom.xml
2、读写操作
(1)写入操作
创建实体类DemoData:
具体操作:
(2)读取操作
<2>监听器
读取代码
结果:
固定套路:
1、写入,固定类格式进行写入
2、读取,根据监听器设置的规则进行读取!
了解,面向对象的思想,学会面向接口编程!
理解使用测试API
作业:把EasyExcel的所有API都测试一下(2~3小时!)
版权声明:
本文来源网络,所有图片文章版权属于原作者,如有侵权,联系删除。
本文网址:https://www.bianchenghao6.com/java-jiao-cheng/16778.html