EasyExcal
EasyExcel是一个省内存的读写Excel的开源项目。在尽可能节约内存的情况下支持读写百M的Excel。 github地址
使用EasyExcal的原因
用Poi读写Excal虽然灵活,方便,特别是做一些简单的curd,但是每次写大量数据时都需要自己费很大劲,而且若需要将其抽象也得费很大劲。EasyExcal对Poi进行了封装,使得我们在使用时方便了很多。
快速使用
- 添加依赖
- 建一个模板类,该模板类一般为每行的内容
- 建一个需要写入的内容的方法
- 一行代码进行写入
添加依赖
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>easyexcel</artifactId>
<version>2.2.3</version>
</dependency>
建一个模板类
package com.monthly.report.billing;
import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty;
import java.util.Date;
public class DemoData {
@ExcelProperty("支付者UIN")//注入第一行
private String string;
@ExcelProperty("资源ID")
private Double doubleData;
@ExcelProperty("日期")
private Date data;
public String getString() {
return string;
}
public void setString(String string) {
this.string = string;
}
public Double getDoubleData() {
return doubleData;
}
public void setDoubleData(Double doubleData) {
this.doubleData = doubleData;
}
public Date getData() {
return data;
}
public void setData(Date data) {
this.data = data;
}
public String getIgnore() {
return ignore;
}
public void setIgnore(String ignore) {
this.ignore = ignore;
}
@ExcelIgnore
private String ignore;
}
建一个需要写入的内容的方法
private List<DemoData> data() {
List<DemoData> list = new ArrayList<DemoData>();
for (int i = 0; i < 10; i++) {
DemoData data = new DemoData();
data.setString("字符串" + i);
data.setDoubleData(0.56);
data.setData(new Date());
list.add(data);
}
return list;
}
一行代码进行批量写入
@Test
public void simpleWrite(){
String fileName = PATH + "EasyTest.xlsx";
EasyExcel.write(fileName, DemoData.class).sheet("模板").doWrite(data());
}