EasyExcel图片填充拦截器-修改图片边距-跨行-属性等

参考链接:
怎么调整导出图片的大小或者样式?https://www.yuque.com/easyexcel/faq/wpedtd
EasyExcel自定义拦截器 https://www.yuque.com/easyexcel/doc/write#591ee418

主要就是实现了AbstractCellWriteHandler,利用EasyExcel填充的不同时期调用对应方法进行拦截处理:

  1. 在数据转换完成后(afterCellDataConverted),将单元格类型设置成EMPTY,不让EasyExcel使用其默认方式处理图片;(AbstractExcelWriteExecutor#setImageValue)
  2. 在单元格上的所有操作完成后(afterCellDispose),使用我们自定义的方式对图片处理。

相关调用在WriteHandlerUtils类中,有兴趣的可以去look look。

自定义拦截器Handler

import com.alibaba.excel.enums.CellDataTypeEnum;
import com.alibaba.excel.metadata.CellData;
import com.alibaba.excel.metadata.Head;
import com.alibaba.excel.write.handler.AbstractCellWriteHandler;
import com.alibaba.excel.write.metadata.holder.WriteSheetHolder;
import com.alibaba.excel.write.metadata.holder.WriteTableHolder;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.ClientAnchor;
import org.apache.poi.ss.usermodel.ClientAnchor.AnchorType;
import org.apache.poi.ss.usermodel.

你可能感兴趣的:(EasyExcel)