一、Excel的应用场景
数据导入:减轻数据录入时的工作量,将Excel表格中信息录入到网站数据库
数据导出:统计信息归档,将用户信息导出到Excel表格
数据传输:异构系统之间数据传输【异构系统,简单来说就是不同架构的两个系统或多个系统,两个系统(比如说mysql数据库和orcal数据库等)之间无法之间连通,需要通过接口等才可以互相访问数据。由多个不同架构系统组成的系统就是异构系统】
操作Excel当前比较流行的就是Apache POI和阿里巴巴的EasyExcel
二、Apache POI
POI是什么
Apache POI是Apache软件基金会的开放源码函式库,POI提供API给Java程序对Microsoft Office格式档案读和写的功能。
基本功能
结构:
HSSF - 提供读写Microsoft Excel格式档案的功能。 03.xls
XSSF - 提供读写Microsoft Excel OOXML格式档案的功能。07.xlsx
HWPF - 提供读写Microsoft Word格式档案的功能。
HSLF - 提供读写Microsoft PowerPoint格式档案的功能。
HDGF - 提供读写Microsoft Visio格式档案的功能。
三、Alibaba EasyEscel
EasyeExcel是什么
EasyExcel是阿里巴巴开源的一个excel处理框架,以使用简单,节省内存著称。
EasyExcel与POI解析对比:
![](https://i-blog.csdnimg.cn/blog_migrate/d40b5be928de97d09adbd0320bf6e1e2.png)
EasyExcel能大大减少占用内存的主要原因是在解析Excel时没有将文件数据一次性全部加载到内存中,而是从磁盘上一行行读取数据,逐个解析。EasyExcel采用一行一行的解析模式,并将一行的解析结果以观察者的模式通知处理(AnalysisEventListener)
java领域解析、生成Excel比较有名的框架有Apache poi、jxl等。但他们都存在一个严重的问题就是非常耗内存。如果你的系统并发量不大可能还行,但是一旦并发上来后一定会OOM或者JVM频繁的full gc(清理整个堆空间包括年轻代和永久代)
四、操作流程
4.1 POI-Excel写
4.1.1 创建项目---Maven项目---Excel_POI
![](https://i-blog.csdnimg.cn/blog_migrate/399230bfaa8d35c65d867a1a883ffc6a.png)
4.1.2 导入依赖,在pom.xml中导入以下依赖
xls(03):最多可以存放65536行,文件后缀名.xls
xls(07):没有限制行数,文件后缀名.xlsx