EasyExcel对Excel 进行写 操作
一、EasyExcel简介
1、EasyExcel特点
- Java领域解析、生成Excel比较有名的框架有Apache poi、jxl等。但他们都存在一个严重的问题就是非常的耗内存。如果你的系统并发量不大的话可能还行,但是一旦并发上来后一定会OOM或者JVM频繁的full gc。
- EasyExcel是阿里巴巴开源的一个excel处理框架,以使用简单、节省内存著称。EasyExcel能大大减少占用内存的主要原因是在解析Excel时没有将文件数据一次性全部加载到内存中,而是从磁盘上一行行读取数据,逐个解析。
- EasyExcel采用一行一行的解析模式,并将一行的解析结果以观察者的模式通知处理(AnalysisEventListener)。
2、github地址+官方文档
https://github.com/alibaba/easyexcel
https://www.yuque.com/easyexcel/doc/write
二、代码
1、引入依赖 (EasyExcel本质上是对poi做的封装 所以还需要引入poi的依赖(2者版本要对应))
<dependencies> <!-- https://mvnrepository.com/artifact/com.alibaba/easyexcel --> <dependency> <groupId>com.alibaba</groupId> <artifactId>easyexcel</artifactId> <version>2.1.1</version> </dependency> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> <version>3.17</version> </dependency> </dependencies>
2、Excel表头的实体类
package com.atguigu.demo.excel; import com.alibaba.excel.annotation.ExcelProperty; import lombok.Data; //lombok自动生成get set 方法 @Data public class DemoDate { //设置Excel 的表头 @ExcelProperty("学生编号") private Integer sno; @ExcelProperty("学生姓名") private String sname; }
3、测试的main方法
package com.atguigu.demo.excel; import com.alibaba.excel.EasyExcel; import java.util.ArrayList; import java.util.List; public class ExcelMain { public static void main(String[] args) { String filename="E:\\学生信息文档.xlsx"; //调用EasyExcel实现写的操作 write里的2个参数 第一个参数 文件路径 自动关闭io流 //第二个参数实体类的class EasyExcel.write(filename,DemoDate.class).sheet("学生列表").doWrite(ExcelMain.getDate()); } public static List<DemoDate> getDate(){ List<DemoDate> list=new ArrayList<>(); for (int i=0;i<10;i++){ DemoDate data=new DemoDate(); data.setSname("mangoubiubiu"+i); data.setSno(i); list.add(data); } return list; } }
三、效果