POI和easyExcel
目标
1、将数据库信息导出为excel表格(导出数据)
2、将excel表中的信息导入到数据库(导出数据)
操作excel比较流行的就是 Apache POI 和阿里巴巴easyExcel。
Apache POI
Apache POI官网:https://poi.apache.org/
POI的主要功能是可以用Java操作Microsoft Office的相关文件,这里主要讲Excel 。
1.导入依赖
1 | <!-- 03版本excel ( .xls )--> |
2.写表格
1 | /* |
结果:
3.读表格
1 |
|
4.读取不同类型的数据
目标表格如下:
1 | /* |
4.EasyExcel
官网:https://www.yuque.com/easyexcel/doc/easyexcel
1.导入依赖
1 | <!--注意它里面自带poi依赖,如果重复导入会报ClassNotfound--> |
2.写入测试
1 | //实体类 |
效果:
3.读取测试
1.实体类
1 |
|
2.假设有持久化操作,写个Dao
1 | /** |
3.监听器
1 | // 有个很重要的点 DemoDataListener 不能被spring管理。 |
4.测试
1 | /** |
4.Web中的读
1 | //文件上传 |
5.总结
- easyExcel的确比poi方便,但是它的读需要编写监听器。
- 建议大数据用easyExcel,因为大数据时poi对于内存消耗非常大。
- 由于apache poi和jxl,excelPOI都有一个严重的问题,就是非常消耗内存,特别处理数据量多时,速度慢并且时有异常发生,所以改用由阿里研发的easyExcel更可靠一些,它的官方建议对于1000行以内的采用原来poi的写法一次读写,但于1000行以上的数据,有用了一行行进行解析的方案,这样避免了内存的溢出。
- asyExcel扩展功能很多,且Api式调用真的轻松很多。