POI操作EXCEL插入图片
系列文章目录
文章目录
POI操作EXCEL插入图片
依赖
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>4.1.2</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>4.1.2</version>
</dependency>
使用HSSFPatriarch来将图片写入EXCEL中
BufferedImage bufferImg;//图片
ByteArrayOutputStream byteArrayOut = null;
try {
// 先把读进来的图片放到一个ByteArrayOutputStream中,以便产生ByteArray
byteArrayOut = new ByteArrayOutputStream();
//将图片读到BufferedImage
InputStream resource = Thread.currentThread().getContextClassLoader().getResourceAsStream(imageName);
if(resource == null){
throw new BusinessException("%s资源不存在",imageName);
}
bufferImg = ImageIO.read(resource);
// 将图片写入流中
ImageIO.write(bufferImg, "png", byteArrayOut);
// 利用HSSFPatriarch将图片写入EXCEL
HSSFPatriarch patriarch = sheet.createDrawingPatriarch();
// 定义单元格位置
HSSFCreationHelper creationHelper = workbook.getCreationHelper();
HSSFClientAnchor clientAnchor = creationHelper.createClientAnchor();
clientAnchor.setCol1(columnNo);
clientAnchor.setRow1(rowNo);
// 插入图片 PICTURE_TYPE_PNG是图片的类型
HSSFPicture picture = patriarch.createPicture(clientAnchor, workbook.addPicture(byteArrayOut
.toByteArray(), HSSFWorkbook.PICTURE_TYPE_PNG));
picture.resize(2.5);
} catch (IOException e) {
LOGGER.error("图片写入excel失败", e);
} finally {
if (byteArrayOut != null) {
try {
byteArrayOut.close();
} catch (IOException e) {
LOGGER.error("关闭流失败", e);
}
}
}
注:在将图片添加到工作簿中时,必须将其存储为字节数组
由于自身博客未收录,可点击 https://zhhll.icu 查看更多有用的博客
本文来自博客园,作者:拾光师,转载请注明原文链接:https://www.cnblogs.com/life-time/p/17864313.html 个人博客-> https://zhhll.icu
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人