EasyExcel 导出 复杂表头

在看这篇文章的时候,我已经认为你了解了EasyExcel的基础用法了。

// 这个用法知道是前提条件
EasyExcel.write()

首先看下我生成的复杂表头是什么样子的

EasyExcel  导出  复杂表头

①:一些除表头之外的其他数据信息

②:表头信息

一般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的时候,也可以设置单元格的样式。

成品的效果,如上图展示所示。

如果有错误的地方,欢迎在评论区指出,谢谢。

2021-08-20 00:07:12

 

EasyExcel 导出 复杂表头

上一篇:Shell script notes


下一篇:Git 的介绍