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