1.添加POI依赖

     <dependency><groupId>org.apache.poi</groupId><artifactId>poi</artifactId><version>3.17</version></dependency><!-- https://mvnrepository.com/artifact/org.apache.poi/poi-ooxml --><dependency><groupId>org.apache.poi</groupId><artifactId>poi-ooxml</artifactId><version>3.17</version></dependency>

2.使用XSSFDrawing 插入图片到excel文件

参考java POI实现向Excel中插入图片    java 在Excel中插入图片 POI实现

XSSFDrawing patri = (XSSFDrawing) sheet.createDrawingPatriarch();
// col1,row1 开始单元格 列和行,从0下标开始
// col2,row2 开始单元格 列和行,从1下标开始
XSSFClientAnchor anchor = new XSSFClientAnchor(0, 0, 255, 255, col1, row1, col2, row2);
patri.createPicture(anchor, workbook.addPicture(byteArrayOut.toByteArray(), XSSFWorkbook.PICTURE_TYPE_PNG));
import java.awt.image.BufferedImage;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;import javax.imageio.ImageIO;import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.xssf.usermodel.XSSFClientAnchor;
import org.apache.poi.xssf.usermodel.XSSFDrawing;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;public class PoiExcelInsertPic {private static String excelFilePath = "C:/TEST/test.xlsx";private static String imagePath = "C:/TEST/image.PNG";// picture 原始位置 第13行 4,5两列private static short picCol1 = 3;private static short picCol2 = 5; // D and Eprivate static int picRow1 = 12;private static int picRow2 = 13; // 第13行public static void main(String[] args) {try {insertPic(excelFilePath, imagePath, picCol1, picRow1, picCol2, picRow2);} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}// 5.往Excel文件插入图片public static void insertPic(String filePath, String imagePath, short col1, int row1, short col2, int row2)throws IOException {FileOutputStream fileOut = null;BufferedImage bufferImg = null;// 先把读进来的图片放到一个ByteArrayOutputStream中,以便产生ByteArrayByteArrayOutputStream byteArrayOut = new ByteArrayOutputStream();bufferImg = ImageIO.read(new File(imagePath));ImageIO.write(bufferImg, "png", byteArrayOut);InputStream is = new FileInputStream(filePath);XSSFWorkbook workbook = new XSSFWorkbook(is);Sheet sheet = workbook.getSheetAt(0);XSSFDrawing patri = (XSSFDrawing) sheet.createDrawingPatriarch();// col1,row1 开始单元格 列和行,从0下标开始// col2,row2 开始单元格 列和行,从1下标开始XSSFClientAnchor anchor = new XSSFClientAnchor(0, 0, 255, 255, col1, row1, col2, row2);patri.createPicture(anchor, workbook.addPicture(byteArrayOut.toByteArray(), XSSFWorkbook.PICTURE_TYPE_PNG));OutputStream out = new FileOutputStream(filePath);workbook.write(out);out.flush();out.close();is.close();System.out.println("----insert pic success------");}
}

java POI 插入图片到Excel文件相关推荐

  1. Apache POI 插入图片至 Excel 的两种方法

    方法 1 插入图片至坐标 ByteArrayOutputStream byteArrayOut = new ByteArrayOutputStream();BufferedImage bufferIm ...

  2. java使用POI导出图片到Excel

    个人学习记录 目录 个人学习记录 1. 使用POI导出图片到Excel中,Excel格式为xls 2. 使用POI导出图片到Excel中,Excel格式为xlsx,图片设置边距 3. 获取图片,生成B ...

  3. 通过Java批量导出带有图片的Excel文件数据

    批量导出带有图片的Excel文件 一.思路解析 二.关键源码 三.总结 Java通过POI或者一些常见的Excel工具类能够轻易导出后台的结构化数据,但是最近面临一个新需求,需要将对应记录数据和图片网 ...

  4. Java基础系列19:使用JXL或者POI生成和解析Excel文件

    一 简介 如题所示,当我们需要在Java中解析Excel文件时,可以考虑使用JXL或POI的API来解析. 二者的区别如下: jxl现在基本上没被维护了,最近一次更新时间还是几年前.相反,poi属于A ...

  5. 使用Hutool插入图片到Excel

    使用Hutool插入图片到Excel 一.pom引入 <parent><groupId>org.springframework.boot</groupId>< ...

  6. POI插入图片的时候,使用resize函数还是变形的问题

    最近在excel2000的版本上用POI插入图片的时候,即使调用resize方法,插入的图片还是走形了. patriarch.createPicture(anchor, wb.addPicture(b ...

  7. Java使用POI导出图片的Excel

    文章目录 依赖 导包 测试类 打开查看 结合实际项目使用 依赖 <dependency><groupId>org.apache.poi</groupId><a ...

  8. 使用POI,实现excel文件导出,图片url导出文件,图片和excel文件导出压缩包

    最近做了一个excel导出的功能,字段涉及到了图片.但是需求是:导出一个压缩包,压缩包包含一个excel文件和多张图片,图片命名按照业务来区分唯一. 准备工作 实体类 public class Mes ...

  9. java中mypoiexception_Java中使用POI读取大的Excel文件或者输入流时发生out of memory异常参考解决方案...

    注意:此参考解决方案只是针对xlsx格式的excel文件! 背景 前一段时间遇到一种情况,服务器经常宕机,而且没有规律性,查看GC日志发生了out of memory,是堆溢出导致的,分析了一下堆的d ...

最新文章

  1. vb计算机考试试题及答案,计算机二级考试《VB》操作试题及答案2016
  2. 第一个jfinal的样例
  3. JAVA-循环体小练习——ATM取款机
  4. 深度剖析SOC高性能实时事件关联分析引擎
  5. 深度解读鸿蒙轻内核CPU占用率
  6. c++ 封装的zookeeper库
  7. python字符串isalnum()函数
  8. numpy - np.asarray
  9. P2835 刻录光盘
  10. VLFeat工具包在matlab使用方法
  11. javascript---继承
  12. 互联网黑产剖析——虚假号码
  13. 线和面的方程区别_几种常见的曲面及其方程.ppt
  14. NOWAIT及SKIP LOCKED的使用
  15. 安利一款SOLIDWORKS插件,可一键帮你分离配置那种!
  16. 电脑声卡或者耳机接口坏了怎么办
  17. 互联网常用术语指标经验总结
  18. 亚马逊EC2使用账号密码登录
  19. java 银行贷款工具类
  20. 认知MOS管-必懂MOS管11个基础知识点及分析

热门文章

  1. LeetCode 刷题之旅(2020.05.22)——105. 从前序与中序遍历序列构造二叉树(中)
  2. ISIS--中间系统协议详解
  3. 小程序跳转到另一个小程序很慢很卡
  4. 网络安全课第七节 文件上传漏洞的检测与防御
  5. 长尾词挖掘免费工具-长尾关键词挖掘词
  6. 服务器端获取表单数据
  7. java 监听鼠标点击_java 事件监听 - 鼠标
  8. 关于Facebook Web端第三方登录
  9. 一头扎进Shiro-身份认证
  10. 广告买量支付方式 cpa cpc cps cpt