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