使用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(){return String.class;}@Overridepublic CellDataTypeEnum supportExcelTypeKey(){return 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)){return 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:return new CellData("无法加载图片");}byte[] bytes = IoUtils.toByteArray(inputStream);return new CellData(bytes);}catch (ConnectException exception){return new CellData("无法加载图片");}catch (FileNotFoundException fileNotFoundException){return new CellData("无法加载图片");}finally{if (inputStream != null){inputStream.close();}}}}
评论区有小伙伴说CellDataTypeEnum.IMAGE 没有
引入下方阿里的依赖就行。
<dependency><groupId>com.alibaba</groupId><artifactId>easyexcel</artifactId><version>2.2.7</version>
</dependency>
2、更改图片字段注解
@ExcelProperty(value = "扫描图像", index = 0, converter = MyStringImageConverter.class)
private String fileUrl;
3、导出样例
使用EasyExcel导出图片及异常处理相关推荐
- easyexcel导出图片到具体excel具体位置并设置大小
提示:easyexcel模板导出,并导出图片到具体位置 文章目录 前言 一.easyexcel源码中填充图片并设置大小的方法 二.改造后的代码 前言 最近在做物料工艺单,用到easyexcel通过模板 ...
- EasyExcel导出图片
在excel里导出图片: 1.数据实体 import com.alibaba.excel.annotation.ExcelProperty; import com.alibaba.excel.anno ...
- 阿里easyexcel导出图片 图片路径失效excel写出空白或默认图片 导出多图片解决
1.1 使用String类型导出 定义自己的Converter,不使用默认的StringImageConverter public class MyStringImageConverter imp ...
- R先生一步步教你用EasyExcel导出包含多图片的Excel
R先生一步步教你用EasyExcel导出包含多图片的Excel 光与光之间的黑暗,路人永不得知 书接上文说到,R先生之前有写过一篇用EasyExel导出包含图片的Excel文件,由于在官方文档并没有找 ...
- 教你用EasyExcel导出包含图片列的excel
教你用EasyExcel导出包含图片列的excel 前情概要 众所周知,导入及导出功能在后台服务中很常见,博主目前参与的这个项目就有多Excel的导入和导出,但是在我昨天完成需求的时候,突然发现项目里 ...
- easyPOI和easyExcel对图片的导出
导出带图片的excel 前言 Apache poi.jxl 的缺陷 阿里出品的 EasyExcel EasyExcel 解决了什么 easyPOI easyExel 前言 关于导出 Excel 文件, ...
- 知识积累:EasyExcel导出Excel带中文水印,中文乱码处理,JDK8 jwt.font中文乱码解决方案
最近项目中,有个需求是将我们系统导出的Excel增加水印设置. EasyExcel导出带水印Excel类 /*** created by etc.* EasyExcel导出带水印类* @author: ...
- EasyExcel 导出
文章目录 1.EasyExcel 导出 1.1. Response流导出单sheet页 1.1.1 response流处理(防止中文乱码): 1.1.2 根据excel映射对象导出(适合结构化数据:列 ...
- 把view或者div绘制 canvas ,导出图片功能实现完整源码附效果图(兼容H5和小程序)
先看下效果图:(上面灰色块内的用div和CSS写出来的,然后绘制到canvas) 实现此功能需要使用到一个微信小程序的插件,插件官方文档地址: wxml-to-canvas | 微信开放文档 本博客代 ...
最新文章
- Swift语言指南(十)--字符串与字符
- Node.js技术手册
- 计算机系统最大的加速能力,系统加速我用Windows系统四大自带工具 -电脑资料
- 多项式输出-Java
- DOCKER存储驱动之DEVICE MAPPER简介
- 十大最常见的Java性能问题
- 终于有人将数据中台讲清楚了,原来根本不算啥
- 乐pad平板电脑_2020年双十一高性价比平板电脑推荐(包含苹果ipad,安卓华为,微软surface)...
- centOS6.4部署svn
- python爬虫数据分析案例-Python 爬虫和数据分析实战
- intouch写数据到MySQL_如何将intouch数据插入到SQL数据库
- 点菜系统软件源码(点菜软件源码分享)
- matlab符号函数求解方程组
- FFT算法实现——python
- MOEA/D学习记录
- 在div中加本地html,div加载另一个HTML页面
- 4月5号-4月11号
- Win11新电脑开机怎么跳过登录microsoft账户?
- [数论][组合数学]微信群
- 简要说明中国大学生篮球状况和未来发展前景(300字
热门文章
- 手把手系列!大规模预训练语言模型
- Java中File文件类之文件过滤器
- Linux下QProcess不产生finished信号、waitforfinished阻塞超时【defunct进程】
- 嵌入式linux培训教程,嵌入式Linux开发学习之Linux文件系统学习
- 齿轮-转子-轴承系统动力学matlab程序代码
- 电池战争:“新石油”与中欧分野
- html 文档在线查看,在网页中在线查看文档(doc、docx 、xls 、xlsx、 pdf 、swf )
- 视频编码基础:I帧、P帧 和 B 帧
- 【华为联机对战服务】如何保存及查看联机对战SDK日志?
- 带鱼屏这种极致体验的电脑显示器也“飞入寻常百姓家”