创建CellWriteHandler
package com.haier.configure.config;
import com.alibaba.excel.metadata.Head;
import com.alibaba.excel.metadata.data.WriteCellData;
import com.alibaba.excel.write.handler.CellWriteHandler;
import com.alibaba.excel.write.metadata.holder.WriteSheetHolder;
import com.alibaba.excel.write.metadata.holder.WriteTableHolder;
import com.haier.configure.consts.CommonConsts;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Comment;
import org.apache.poi.ss.usermodel.Drawing;
import org.apache.poi.xssf.usermodel.XSSFClientAnchor;
import org.apache.poi.xssf.usermodel.XSSFRichTextString;
import java.util.List;
/**
* @author A2001111
* @date 2024/6/25 11:12
*/
@Slf4j
public class CustomCellWriteHandler implements CellWriteHandler {
@Override
public void afterCellDispose(WriteSheetHolder writeSheetHolder, WriteTableHolder writeTableHolder, List<WriteCellData<?>> cellDataList, Cell cell, Head head, Integer relativeRowIndex, Boolean isHead) {
// “编码”批注
if (StringUtils.equals(cell.getStringCellValue(), CommonConsts.IMPORT_PREFIX.get(1))) {
Drawing<?> drawing = writeSheetHolder.getSheet().createDrawingPatriarch();
Comment comment = drawing.createCellComment(new XSSFClientAnchor(1,1,1,1,cell.getColumnIndex(),cell.getRowIndex(),1,1));
comment.setString(new XSSFRichTextString("编码长度不超过50"));
cell.setCellComment(comment);
return;
}
// “应用编码”批注
if (StringUtils.equals(cell.getStringCellValue(), CommonConsts.IMPORT_PREFIX_APPLICATION.get(1))) {
Drawing<?> drawing = writeSheetHolder.getSheet().createDrawingPatriarch();
Comment comment = drawing.createCellComment(new XSSFClientAnchor(1,1,1,1,cell.getColumnIndex(),cell.getRowIndex(),1,1));
comment.setString(new XSSFRichTextString("选填"));
cell.setCellComment(comment);
}
}
}
使用CellWriteHandler
EasyExcel.write(response.getOutputStream())
.head(head)
.registerWriteHandler(new CustomCellWriteHandler())
.sheet("数据")
.doWrite(Collections.emptyList());