背景
最新項目有個新需求,把項目中的數據通過excel的固定模板導出,懶懶的我不怎么會poi就使用easyexcel簡化操作步驟
步驟
根據easyExcel的官方文檔 https://www.yuque.com/easyexcel/doc/easyexcel
第一步 定義DataDemo,把要導出的數據定義為DataDemo類的字段
第二步 添加注解變量 @ExcelProperty("字符串標題"),模板如下
@Data
public class DataDemo{
@ExcelProperty("字符串標題")
private String string;
@ExcelProperty("日期標題")
private Date date;
@ExcelProperty("數字標題")
private Double doubleData;
/**
* 忽略這個字段
*/
@ExcelIgnore
private String ignore;
}
第三步:將要輸出的數據形成多個DataDemo對象,並存入list集合
第四步:EasyExcel.write(fileName, DemoData.class).sheet("模板").doWrite(list集合);
輸出結果如下圖:
很簡單吧! 但是復雜頭的Excel怎么寫出呢? 類似這種
則DataDemo應該的定義成這樣
@Data
public class ComplexHeadData {
@ExcelProperty({"主標題", "字符串標題"})
private String string;
@ExcelProperty({"主標題", "日期標題"})
private Date date;
@ExcelProperty({"主標題", "數字標題"})
private Double doubleData;
}
如果更復雜的頭呢?
可以參考一下下面代碼
public class MultiLineHeadExcelModel extends BaseRowModel {
@ExcelProperty(value = {"表頭1","表頭1","表頭31"},index = 0)
private String p1;
@ExcelProperty(value = {"表頭1","表頭1","表頭32"},index = 1)
private String p2;
@ExcelProperty(value = {"表頭3","表頭3","表頭3"},index = 2)
private int p3;
@ExcelProperty(value = {"表頭4","表頭4","表頭4"},index = 3)
private long p4;
@ExcelProperty(value = {"表頭5","表頭51","表頭52"},index = 4)
private String p5;
@ExcelProperty(value = {"表頭6","表頭61","表頭611"},index = 5)
private String p6;
@ExcelProperty(value = {"表頭6","表頭61","表頭612"},index = 6)
private String p7;
@ExcelProperty(value = {"表頭6","表頭62","表頭621"},index = 7)
private String p8;
@ExcelProperty(value = {"表頭6","表頭62","表頭622"},index = 8)
private String p9;
}