EasyExcel 是一个基于 Apache POI 的封装库,用于简化 Excel 的读写操作。它主要优化了内存的使用,使得在处理大量数据时更加高效。
添加依赖
通过maven的pon添加依赖
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>easyexcel</artifactId>
<version>3.3.4</version>
</dependency>
写入excel
import com.alibaba.excel.EasyExcel;
import com.alibaba.excel.annotation.ExcelProperty;
import java.util.ArrayList;
import java.util.List;
public class ExcelWriteDemo {
public static void main(String[] args) {
// 准备数据
List<DemoData> list = new ArrayList<>();
for (int i = 0; i < 10; i++) {
DemoData data = new DemoData();
data.setId(i);
data.setName("姓名" + i);
data.setAge(20 + i);
list.add(data);
}
EasyExcel.write("D:\\doc\\gitspace\\demo\\src\\main\\resources\\excel\\simple.xlsx", DemoData.class).sheet()
.sheetName("用户信息").doWrite(list);
}
public static class DemoData {
@ExcelProperty("ID")
private Integer id;
@ExcelProperty("姓名")
private String name;
@ExcelProperty("年龄")
private Integer age;
// 省略getter和setter方法
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
}
}
效果
读取excel
import com.alibaba.excel.EasyExcel;
import com.alibaba.excel.context.AnalysisContext;
import com.alibaba.excel.read.listener.ReadListener;
import java.util.Map;
public class ExcelReadDemo {
public static void main(String[] args) {
EasyExcel.read("D:\\doc\\gitspace\\demo\\src\\main\\resources\\excel\\simple.xlsx", new ReadListener<Map>() {
@Override
public void invoke(Map data, AnalysisContext context) {
// 处理读取到的数据
System.out.println(data);
}
@Override
public void doAfterAllAnalysed(AnalysisContext context) {
// 所有数据解析完成后的操作
}
}).sheet().doRead();
}
}
控制台输出
以上就是通过easyexcel读写excel的基本操作了,easyexcel还支持复杂表头的读取写入操作,有需要的同学可以自行了解~