easyExcel导出参数表头

easyExcel导出参数表头
依赖

<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>easyexcel</artifactId>
    <version>3.1.1</version>
</dependency>

导出类

@Data
public class ExportExcel implements Serializable {
    private static final long serialVersionUID = 1L;

    @ExcelProperty(value = {"${cellWriterValue}", "序号"})
    private Integer sort;

    @ExcelProperty(value = {"${cellWriterValue}", "条码号"})
    private String barcode;
}

参数表头处理器

public class ValueCellWriteHandler implements CellWriteHandler {

    private String cellWriterValue;
    PropertyPlaceholderHelper propertyPlaceholderHelper = new PropertyPlaceholderHelper("${","}");

    public ValueCellWriteHandler(String cellValue) {
        this.cellWriterValue = cellValue;
    }

    @Override
    public void beforeCellCreate(WriteSheetHolder writeSheetHolder, WriteTableHolder writeTableHolder, Row row, Head head, Integer integer, Integer integer1, Boolean aBoolean) {
        if (null != head) {
            List<String> headNameList = head.getHeadNameList();
            if (CollectionUtil.isNotEmpty(headNameList)) {
                Properties properties = new Properties();
                properties.setProperty("cellWriterValue", cellWriterValue);
                for (int i = 0; i < headNameList.size(); i++) {
                    headNameList.set(i, propertyPlaceholderHelper.replacePlaceholders(headNameList.get(i), properties));
                }
            }
        }
    }
}

导出(我这里是上传到文件存储去了)

public String exportExcel(String value) {
    List<ExportExcel> excelList = new ArrayList<>();
    ByteArrayOutputStream out = new ByteArrayOutputStream();
    ExcelWriter excelWriter = null;
    try {
        excelWriter = EasyExcel.write(out, ExportExcel.class)
            .registerWriteHandler(new ValueCellWriteHandler(value)).build();
        WriteSheet writeSheet = EasyExcel.writerSheet(0, value).build();
        excelWriter.write(excelList, writeSheet);
    } finally {
        if (excelWriter != null) {
            excelWriter.finish();
        }
    }
    File file = ossTemplate.putFile("fileName", new ByteArrayInputStream(out.toByteArray()));
    return file.getLink();
}

效果(“参数”便是上面exportExcel()方法传入的value)

 

 

参考自:https://blog.csdn.net/lol19950605/article/details/135776897?spm=1001.2014.3001.5502

 

posted @ 2024-03-08 15:01  《END》  阅读(21)  评论(0编辑  收藏  举报