- 先附上官方的的github地址 :https://github.com/alibaba/easyexcel
- 环境搭建:需要引入的依赖:务必使用2.0以上的版本;因为基于poi来重写的;所以需要引入poi对应的依赖
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>easyexcel</artifactId>
<version>2.0.4-beta1</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>RELEASE</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>3.17</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>3.17</version>
</dependency>
3.读取excel (这里读取的功能太多;只说最简单的读取;其他的可以看官方说明)
3.1要读取的数据如下:
两个sheet这种
3.2 ## 首先我们需要一个实体类;读取数据的时候会把数据放到实体类里
这里的@Data是必须的; @ExcelProperty() 读取数据不会用到该注解;因为我读和写用的同一个实体类;强调如果实体类某个字段不想被写进excel需要加上@ExcelIgnore这个注解
3.3 读取的代码:
注释写得也很详细;要注意最后的finish(); 其他更复杂的读可参考官方;很多都是方法改下就行。读取的数据我们可以在这个监听器里获取到;这时可以把数据存到数据库等等
4.***写入exce*l ;这里我准备了3百万的测试数据分成了50个sheet 每个sheet展示6万条数据。
4.1## 实体类
写的实体类,两个注解都不能少 @ExcelProperty() 里是列的名字
4.2## 写的代码:
需要注意的是:要指定用哪个class去写;sheetName不能重复;最后记得finish要不然会写入失败。
3百万条数据 每条5列
easyExcel最强大的地方在于内存消耗小;并发和数据大的时候会体现得很明显;
最后附上源码(包含建表脚本):源码下载(58M)
打开之后点击java.rar即可下载
另外2.0.4版本的easyexcel jar包可能下载不下来 所以我这里提供了 easyexcel-2.0.4.jar
20200120更新:官方文档地址:https://alibaba-easyexcel.github.io/index.html