在看這篇文章的時候,我已經認為你了解了EasyExcel的基礎用法了。
// 這個用法知道是前提條件 EasyExcel.write()
首先看下我生成的復雜表頭是什么樣子的
①:一些除表頭之外的其他數據信息
②:表頭信息
一般EasyExcel導出的表頭都是默認從第一行開始的,現在要做到表頭的位置不在第一行。
EasyExcel使用這個參數,設置表頭在第5行開始,0是第一行
//設置默認樣式及寫入頭信息開始的行數 .useDefaultStyle(true).relativeHeadRowIndex(4)
設置之后EasyExcel就可以在相應的位置插入表頭了,接下來就是在表頭上面那部分寫入一些指定的數據
自定義一個攔截器,實現這個接口
SheetWriteHandler
具體代碼如下:
@Data public class CustomSheetWriteHandler implements SheetWriteHandler { private Demo demo; public CustomSheetWriteHandler(Demo demo) { this.demo = demo; } @Override public void beforeSheetCreate(WriteWorkbookHolder writeWorkbookHolder, WriteSheetHolder writeSheetHolder) { } // 在Excel工作頁創建之后,進行操作 @Override public void afterSheetCreate(WriteWorkbookHolder writeWorkbookHolder, WriteSheetHolder writeSheetHolder) { Workbook workbook = writeWorkbookHolder.getWorkbook(); Sheet sheet = workbook.getSheetAt(0); // 設置0行0列,這里可以設置一些自定義的樣式,顏色,文本,背景等等 Row row = sheet.createRow(0); Cell cell = row.createCell(0); cell.setCellValue("公式"); // 設置1行0列 Row row1 = sheet.createRow(1); Cell cell1 = row1.createCell(0); cell1.setCellValue("數學公式"); } }
使用自定義攔截器的構造方法可以傳一些需要填寫的參數
設置cell的時候,也可以設置單元格的樣式。
成品的效果,如上圖展示所示。
如果有錯誤的地方,歡迎在評論區指出。
參考鏈接:
https://blog.csdn.net/qq_41514643/article/details/106993760