EasyExcel全面实战:掌握多样化的Excel导出能力
1 概述
本文将通过实战案例全面介绍EasyExcel在Excel导出方面的多种功能。内容涵盖多表头写入、自定义格式、动态表头生成、单元格合并应用等。通过这些实例,读者可以掌握EasyExcel的各种高级功能,并在实际项目中灵活应用。
白日依山尽,黄河入海流。
欲穷千里目,更上一层楼。
入门和大数据导出性能请参考文章 使用EasyExcel高效导出20万条记录至Excel
2 实战
谁在用琵琶弹奏一曲东风破,枫叶将故事染色。
结局我看透,篱笆外的古道我牵着你走过。
2.1 多表头写入
模型注解如下:
package org.example;
import com.alibaba.excel.annotation.ExcelProperty;
import java.util.Date;
/**
* 数据模型
*/
public class Data {
/**
* 名称
*/
@ExcelProperty(value = {
"分组", "名称"})
private String name;
/**
* 值
*/
@ExcelProperty(value = {
"分组", "值"})
private double value;
/**
* 日期
*/
@ExcelProperty(value = "日期")
private Date date;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public double getValue() {
return value;
}
public void setValue(double value) {
this.value = value;
}
public Date getDate() {
return date;
}
public void setDate(Date date) {
this.date = date;
}
}
写入代码如下:
package org.example;
import com.alibaba.excel.EasyExcel;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
public class Main {
public static void main(String[] args) {
long currentedTimeMillis = System.currentTimeMillis();
String fileName = "simpleWrite" + currentedTimeMillis + ".xlsx";
EasyExcel.write(fileName, Data.class).sheet("导出").doWrite(createDatas());
System.out.println("导出成功: " + (System.currentTimeMillis() - currentedTimeMillis) + " 毫秒");
}
private static List<Data> createDatas() {
List<Data> datas = new ArrayList<>();
int count = 10;
for (int i = 1; i <= count; i++) {
Data data = new Data();
data.setName("name" + i);
data