EasyExcel 導出復雜表頭


在看這篇文章的時候,我已經認為你了解了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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM