这篇文章主要为大家介绍了不调用方法实现hutool导出excel图片示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
前言
最近在做excel导出文件,然后有一列是图片展示,然后我们图片搞了防盗链,如果直接点开链接,就是一个默认图片(无法展示),我就想着把图片嵌入excel中展示,由于我框架用的是hutool去导出,我点开里面各种类,结果都没有img的输入excel的方法,气死我了
骚操作
其实我也是一个cv工程师,百度找找有没有大佬已经实现这功能,然后就找到了,不是hutool里面的方法,是poi包下
输出excel数据代码
//写入数据
writer.write(xx, true);
导出类
xx 是List list,我们看下bo类,我们定义一个不存在的字段,方便塞入图片列
@AllArgsConstructor
@NoArgsConstructor
@Builder
@Data
public class BO {
private String pic;
private String url;
}
这个类里头有个url链接字段,pic是图片展示的列,url我们是不展示的,所以需要加上下面这段代码,就是如果这个字段跟excel列不匹配(不展示)的时候,就不展示出来,不然会展示列名为url
writer.setOnlyAlias(true);
输出图片
好家伙,在输出数据之后,还要特殊处理excel
for (int i = 0; CollectionUtil.isNotEmpty(xx) && i < xx.size(); i++) {
//读取图片,这里自行读取流,代码做了模糊
byte[] pictureData = null;
//写入图片
Sheet sheet = writer.getSheet();
Drawing<?> drawingPatriarch = sheet.createDrawingPatriarch();
//设置图片单元格位置 第5列展示图片,i是行数
ClientAnchor anchor = drawingPatriarch.createAnchor(0, 0, 0, 0, 4 , i + 1, 4 + 1, i + 2);
//随单元格改变位置和大小
anchor.setAnchorType(ClientAnchor.AnchorType.MOVE_AND_RESIZE);
//添加图片
int pictureIndex = sheet.getWorkbook().addPicture(pictureData, HSSFWorkbook.PICTURE_TYPE_JPEG);
drawingPatriarch.createPicture(anchor, pictureIndex);
}
展示结果

吐槽
我觉得这个应该封装到hutool ExcelWriter方法里头,这样才能提高工具类的功能,我相信大部分公司都在用hutool,毕竟经过社区以及时间的大量考验,框架应该更加完善才能满足开发者的需求。
好吧,这就去提个issue,哈哈~
以上就是不调用方法实现hutool导出excel图片示例详解的详细内容,更多关于hutool导出excel图片的资料请关注编程学习网其它相关文章!
本文标题为:不调用方法实现hutool导出excel图片示例详解
基础教程推荐
- 一文带你搞懂Java中方法重写与方法重载的区别 2023-07-14
- 关于Java双大括号{{}}的具体使用 2023-03-15
- RocketMQ Push 消费模型示例详解 2023-05-24
- java知识点7——面向过程和面向对象、面向对象的内存分析、构造方法 2023-09-01
- Java多线程学习笔记之三内存屏障与Java内存模型 2023-09-01
- Java实现插入排序算法可视化的示例代码 2023-04-23
- MyBatis-Plus自定义通用的方法实现 2023-07-15
- Java List的get方法 2023-10-08
- Java Web开发中过滤器和监听器使用详解 2023-06-30
- Spring Cloud Config分布式配置中心使用介绍详解 2023-05-07
