1.1 使用String类型导出 定义自己的Converter,不使用默认的StringImageConverter
public class MyStringImageConverter implements Converter<String> {
@Override
public Class supportJavaTypeKey() {
return String.class;
}
@Override
public CellDataTypeEnum supportExcelTypeKey() {
return CellDataTypeEnum.IMAGE;
}
@Override
public String convertToJavaData(CellData cellData, ExcelContentProperty contentProperty,
GlobalConfiguration globalConfiguration) {
throw new UnsupportedOperationException("Cannot convert images to string");
}
//图片失效处理
@Override
public CellData convertToExcelData(String value, ExcelContentProperty contentProperty,
GlobalConfiguration globalConfiguration) throws IOException {
File file = new File(value);
if(file.exists()){
//文件存在
return new CellData(FileUtils.readFileToByteArray(new File(value)));
}
//直接返回文字描述
//FileUtils.readFileToByteArray(new File("/home/test.jpg"))
return new CellData("无法加载图片");
}
}
1.2.更改图片字段注解
@ExcelProperty(value = {"图片"},index = 0,converter = MyStringImageConverter.class)
private String siteImages;
2.1使用URL类型导出 同理定义自己的Converter 处理异常
public class MyUrlImageConverter implements Converter<URL> {
@Override
public Class supportJavaTypeKey() {
return URL.class;
}
@Override
public CellDataTypeEnum supportExcelTypeKey() {
return CellDataTypeEnum.IMAGE;
}
@Override
public URL convertToJavaData(CellData cellData, ExcelContentProperty contentProperty,
GlobalConfiguration globalConfiguration) {
throw new UnsupportedOperationException("Cannot convert images to url.");
}
@Override
public CellData convertToExcelData(URL value, ExcelContentPr