java POI 插入图片到Excel文件
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文件相关推荐
- Apache POI 插入图片至 Excel 的两种方法
方法 1 插入图片至坐标 ByteArrayOutputStream byteArrayOut = new ByteArrayOutputStream();BufferedImage bufferIm ...
- java使用POI导出图片到Excel
个人学习记录 目录 个人学习记录 1. 使用POI导出图片到Excel中,Excel格式为xls 2. 使用POI导出图片到Excel中,Excel格式为xlsx,图片设置边距 3. 获取图片,生成B ...
- 通过Java批量导出带有图片的Excel文件数据
批量导出带有图片的Excel文件 一.思路解析 二.关键源码 三.总结 Java通过POI或者一些常见的Excel工具类能够轻易导出后台的结构化数据,但是最近面临一个新需求,需要将对应记录数据和图片网 ...
- Java基础系列19:使用JXL或者POI生成和解析Excel文件
一 简介 如题所示,当我们需要在Java中解析Excel文件时,可以考虑使用JXL或POI的API来解析. 二者的区别如下: jxl现在基本上没被维护了,最近一次更新时间还是几年前.相反,poi属于A ...
- 使用Hutool插入图片到Excel
使用Hutool插入图片到Excel 一.pom引入 <parent><groupId>org.springframework.boot</groupId>< ...
- POI插入图片的时候,使用resize函数还是变形的问题
最近在excel2000的版本上用POI插入图片的时候,即使调用resize方法,插入的图片还是走形了. patriarch.createPicture(anchor, wb.addPicture(b ...
- Java使用POI导出图片的Excel
文章目录 依赖 导包 测试类 打开查看 结合实际项目使用 依赖 <dependency><groupId>org.apache.poi</groupId><a ...
- 使用POI,实现excel文件导出,图片url导出文件,图片和excel文件导出压缩包
最近做了一个excel导出的功能,字段涉及到了图片.但是需求是:导出一个压缩包,压缩包包含一个excel文件和多张图片,图片命名按照业务来区分唯一. 准备工作 实体类 public class Mes ...
- java中mypoiexception_Java中使用POI读取大的Excel文件或者输入流时发生out of memory异常参考解决方案...
注意:此参考解决方案只是针对xlsx格式的excel文件! 背景 前一段时间遇到一种情况,服务器经常宕机,而且没有规律性,查看GC日志发生了out of memory,是堆溢出导致的,分析了一下堆的d ...
最新文章
- vb计算机考试试题及答案,计算机二级考试《VB》操作试题及答案2016
- 第一个jfinal的样例
- JAVA-循环体小练习——ATM取款机
- 深度剖析SOC高性能实时事件关联分析引擎
- 深度解读鸿蒙轻内核CPU占用率
- c++ 封装的zookeeper库
- python字符串isalnum()函数
- numpy - np.asarray
- P2835 刻录光盘
- VLFeat工具包在matlab使用方法
- javascript---继承
- 互联网黑产剖析——虚假号码
- 线和面的方程区别_几种常见的曲面及其方程.ppt
- NOWAIT及SKIP LOCKED的使用
- 安利一款SOLIDWORKS插件,可一键帮你分离配置那种!
- 电脑声卡或者耳机接口坏了怎么办
- 互联网常用术语指标经验总结
- 亚马逊EC2使用账号密码登录
- java 银行贷款工具类
- 认知MOS管-必懂MOS管11个基础知识点及分析