一.依赖引用
<!-- poi -->
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>4.1.2</version>
</dependency>
<dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>4.1.2</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>easyexcel</artifactId>
<version>2.2.6</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml-schemas</artifactId>
<version>4.1.2</version>
<scope>compile</scope>
</dependency>
二.使用详情
String filename = "";
ExcelWriter excelWriter = EasyExcel.write(filename).build();
filename为生成Excel路径
WriteSheet sheet = EasyExcel.writerSheet(index, sheetName)
.head(Data.class).build();
创建一个新sheet,sheet索引为index(0开始),名称sheetName
Data.class为生成数据的类型
@ExcelProperty(value = "表头名称",index = 0)
Pojo类属性上添加EasyExcel注解,value为表头信息,index为第几列(0开始)
excelWriter.write(list, sheet);
list为数据列表,类型为Data.class
注意:泛型可能无法识别,导致列表头信息报错
public static void main(String[] args) {
write(Pv.class);
}
public static <T> void write(T tClass){
String filename = "/Users/admin/Documents/ccc111.xlsx";
List<Pv> list = new ArrayList<>();
Pv pv = new Pv();
pv.setDate("123");
pv.setDomestic(12);
list.add(pv);
ExcelWriter excelWriter = EasyExcel.write(filename).build();
WriteSheet sheet = EasyExcel.writerSheet(0, "s1")
.head(tClass.getClass()).build();
excelWriter.write(list, sheet);
// WriteSheet sheet1 = EasyExcel.writerSheet(1, "s2")
// .head(Pv.class).build();
// excelWriter.write(list, sheet1);
excelWriter.finish();
}
这样不会报错
public static void main(String[] args) {
write(Pv.class);
}
public static <T> void write(Class<T> tClass){
String filename = "/Users/admin/Documents/ccc111.xlsx";
List<Pv> list = new ArrayList<>();
Pv pv = new Pv();
pv.setDate("123");
pv.setDomestic(12);
list.add(pv);
ExcelWriter excelWriter = EasyExcel.write(filename).build();
WriteSheet sheet = EasyExcel.writerSheet(0, "s1")
.head(tClass).build();
excelWriter.write(list, sheet);
// WriteSheet sheet1 = EasyExcel.writerSheet(1, "s2")
// .head(Pv.class).build();
// excelWriter.write(list, sheet1);
excelWriter.finish();
}
三.相同数据合并(合并单元格)
registerWriteHandler()
继承AbstractMergeStrategy