使用EasyExcel导出图片及异常处理
1、使用String类型导出 定义自己的Converter,不使用默认的StringImageConverter
如果图片路径为空或者图片路径是错误的,返回相应的内容
import java.io.FileNotFoundException;import java.io.IOException;import java.io.InputStream;import java.net.ConnectException;import java.net.HttpURLConnection;import java.net.URL;import java.net.URLConnection;import com.alibaba.excel.converters.Converter;import com.alibaba.excel.enums.CellDataTypeEnum;import com.alibaba.excel.metadata.CellData;import com.alibaba.excel.metadata.GlobalConfiguration;import com.alibaba.excel.metadata.property.ExcelContentProperty;import com.alibaba.excel.util.IoUtils;import com.njyjz.common.util.Validater;public class MyStringImageConverter implements Converter<String>{@Overridepublic Class supportJavaTypeKey(){retu String.class;}@Overridepublic CellDataTypeEnum supportExcelTypeKey(){retu CellDataTypeEnum.IMAGE;}@Overridepublic String convertToJavaData(CellData cellData, ExcelContentProperty contentProperty,GlobalConfiguration globalConfiguration){throw new UnsupportedOperationException("Cannot convert images to string");}// 图片失效处理@Overridepublic CellData convertToExcelData(String value, ExcelContentProperty contentProperty,GlobalConfiguration globalConfiguration)throws IOException{InputStream inputStream = null;try{if(Validater.isEmptyString(value)){retu new CellData("图片路径为空");}URL urlValue = new URL(value);// 开启连接URLConnection uc = urlValue.openConnection();// 获取响应状态int statusCode = ((HttpURLConnection)uc).getResponseCode();switch (statusCode){case 200:inputStream = urlValue.openStream();break;default:retu new CellData("无法加载图片");}byte[] bytes = IoUtils.toByteArray(inputStream);retu new CellData(bytes);}catch (ConnectException exception){retu new CellData("无法加载图片");}catch (FileNotFoundException fileNotFoundException){retu new CellData("无法加载图片");}finally{if (inputStream != null){inputStream.close();}}}}
2、更改图片字段注解
@ExcelProperty(value = "扫描图像", index = 0, converter = MyStringImageConverter.class)private String fileUrl;
3、导出样例
作者:云村的王子
来源链接:https://www.cnblogs.com/qq1445496485/p/15273104.html
版权声明:
1、JavaClub(https://www.javaclub.cn)以学习交流为目的,由作者投稿、网友推荐和小编整理收藏优秀的IT技术及相关内容,包括但不限于文字、图片、音频、视频、软件、程序等,其均来自互联网,本站不享有版权,版权归原作者所有。
2、本站提供的内容仅用于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律的规定,不得侵犯相关权利人及本网站的合法权利。
3、本网站内容原作者如不愿意在本网站刊登内容,请及时通知本站(javaclubcn@163.com),我们将第一时间核实后及时予以删除。