Java Poi 向excel中插入图片

2023-05-16

 

博客

 

package com.unicom.yangjiabin.utils;

import java.awt.image.BufferedImage;
import java.io.ByteArrayOutputStream;  
import java.io.File;  
import java.io.FileOutputStream;  
import java.io.IOException;  
 
import javax.imageio.ImageIO;  
 
import org.apache.poi.hssf.usermodel.HSSFClientAnchor;  
import org.apache.poi.hssf.usermodel.HSSFPatriarch;  
import org.apache.poi.hssf.usermodel.HSSFSheet;  
import org.apache.poi.hssf.usermodel.HSSFWorkbook;  
public class AAAA {

    public static void main(String[] args) {
            FileOutputStream fileOut = null;
            BufferedImage bufferImg = null;//图片
            try {  
                // 先把读进来的图片放到一个ByteArrayOutputStream中,以便产生ByteArray  
                ByteArrayOutputStream byteArrayOut = new ByteArrayOutputStream();  
                //将图片读到BufferedImage  
                //bufferImg = ImageIO.read(new File("C:/Users/uctimes/Desktop/1.jpg"));
                bufferImg = ImageIO.read(new File("D:\\ji.png"));
                // 将图片写入流中  
                ImageIO.write(bufferImg, "png", byteArrayOut);  
                // 创建一个工作薄  
                HSSFWorkbook wb = new HSSFWorkbook();  
                //创建一个sheet  
                HSSFSheet sheet = wb.createSheet("out put excel");  
                // 利用HSSFPatriarch将图片写入EXCEL  
                HSSFPatriarch patriarch = sheet.createDrawingPatriarch();  
                /**
                 * 该构造函数有8个参数
                 * 前四个参数是控制图片在单元格的位置,分别是图片距离单元格left,top,right,bottom的像素距离
                 * 后四个参数,前连个表示图片左上角所在的cellNum和 rowNum,后天个参数对应的表示图片右下角所在的cellNum和 rowNum,
                 * excel中的cellNum和rowNum的index都是从0开始的
                 *  
                 */  
                //图片一导出到单元格B5中
                HSSFClientAnchor anchor = new HSSFClientAnchor(0, 0, 0, 0,  
                        (short) 1, 5, (short)2, 4);
                // 插入图片  
                patriarch.createPicture(anchor, wb.addPicture(byteArrayOut  
                        .toByteArray(), HSSFWorkbook.PICTURE_TYPE_JPEG));  
                //生成的excel文件地址
                //fileOut = new FileOutputStream("C:/Users/uctimes/Downloads/123.xls");
                fileOut = new FileOutputStream("D:\\2.xlsx");
                // 写入excel文件  
                wb.write(fileOut);  
            } catch (IOException io) {  
                io.printStackTrace();  
                System.out.println("io erorr : " + io.getMessage());  
            } finally {  
                if (fileOut != null) {  
                    try {  
                        fileOut.close();  
                    } catch (IOException e) {  
                        e.printStackTrace();  
                    }  
                }  
            }  
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Java Poi 向excel中插入图片 的相关文章

  • 防止 Spring Boot 注册 Spring Security 过滤器之一

    我想禁用安全链中的 Spring Security 过滤器之一 我已经看到了防止 Spring Boot 注册 servlet 过滤器 https stackoverflow com questions 28421966 prevent s
  • 使用 Java 在 WebDriver 中按 Ctrl+F5 刷新浏览器

    我已经使用 java 刷新了 WebDriver 中的浏览器 代码如下 driver navigate refresh 如何使用 Java 在 WebDriver 中按 Ctrl F5 来做到这一点 我认为您可以使用 WebDriver 和
  • URL.setURLStreamHandlerFactory

    我正在使用带有嵌入式 Jetty 的可执行 jar 开发一个 Web 应用程序 我的jar包含一个依赖jar jar in jar 我参考了JarRsrcLoader and RsrcURLStreamHandlerFactory由 Ecl
  • 如何开始使用 Chainsaw for Log4j?

    我想开始使用 Chainsaw v2 几乎没有关于它的信息 我只找到了this http www velocityreviews com forums t140105 help using chainsaw for log4j html 但
  • Junit maven构建错误(maven-surefire-plugin:2.19.1:测试失败:分叉进程中出现错误)[重复]

    这个问题在这里已经有答案了 我通过引用创建了一个示例 struts 2 项目和 J unit 测试用例link http self learning java tutorial blogspot com au 2015 04 struts2
  • Spring3/Hibernate3/TestNG:有些测试给出 LazyInitializationException,有些则没有

    前言 我在单元测试中遇到了 LazyInitializationException 的问题 而且我很难理解它 正如你从我的问题中看到的那样Spring 中的数据库会话 https stackoverflow com questions 13
  • RMI 中的引用传递问题? [复制]

    这个问题在这里已经有答案了 有人可以告诉我我错在哪里 为什么这个 RMI 聊天应用程序不起作用 目标是通过远程对象或序列化对象实现客户端 服务器和逻辑之间的解耦 import javax swing import java awt even
  • java.lang.LinkageError:尝试重复的类定义

    为什么会发生错误以及如何修复它 02 13 02 pool 4 thread 2 WARN Exception in thread pool 4 thread 2 02 13 02 pool 4 thread 2 WARN java lan
  • 如何拦截 REST 端点以接收所有标头?

    我当前的代码是 Path login RequestScoped public class LoginResource GET SecurityChecked public Response getUser HeaderParam AUTH
  • 定期更新 SWT 会导致 GUI 冻结

    Problem 当 GUI 字段定期更新时 SWT 会冻结 我想要一个基于 SWT 的 GUI 其中文本字段的值会定期递增 最初我从单独的线程访问 textField 导致抛出异常 线程 Thread 0 org eclipse swt S
  • Java Microsoft Excel API [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • Java-如何将黑白图像加载到二进制中?

    我在 FSE 模式下使用 Java 和 swing 我想将完全黑白图像加载为二进制格式 最好是二维数组 并将其用于基于掩码的每像素碰撞检测 我什至不知道从哪里开始 过去一个小时我一直在研究 但没有找到任何相关的东西 只需将其读入Buffer
  • Intellij 中的 Google OR-Tools:UnsatisfiedLinkError

    我正在建立一个应该使用 Google OR Tools 的 java 框架 下面的代码编译成功 但在运行时抛出异常 Exception in thread main java lang UnsatisfiedLinkError com go
  • Jenkins 的代码覆盖率 [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 在 Java 中将弯音发送到 MIDI 音序器

    我了解启动和运行 MIDI 音序器的基础知识 并且希望能够在播放过程中增加 减小序列的音高 但弯音是发送到合成器而不是音序器的消息 我尝试将音序器的接收器设置为合成器的发射器 当我发送弯音短消息时 音序器保持相同的音调 但随后合成器以新的弯
  • 如何在Java媒体框架中学习.wav持续时间?

    我正在尝试使用 java 媒体框架将 mov 文件与 wav 文件合并 因此我需要知道它们的持续时间 我怎样才能做到这一点 任何想法 将不胜感激 您可以使用以下方式了解声音文件的持续时间 即 VitalyVal 的第二种方式 import
  • Excel:#CALC!使用 MAP 函数计算间隔重叠时出现错误(嵌套数组)

    我正在努力解决以下公式 它适用于某些情况 但不适用于所有情况 名字input有失败的数据集 得到一个 CALC 描述 嵌套数组 错误 LET input N1 0 0 N1 0 10 N1 10 20 names INDEX input 1
  • 警告:无法更改每个人的权限:

    当运行 Java 快速入门示例时https developers google com drive web quickstart java hl hu https developers google com drive web quicks
  • 对于当前月份和日期但年份不同的日期,经过的月份计算未给出正确的结果

    我正在尝试计算自特定日期以来经过的月份 该函数工作正常 尽管如果我将今天的日期与过去的不同年份放在一起 它会给我一个月的差异 不到一个月 假设对于所有日期 该函数都运行良好 除了 如果今天是 2014 03 06 YYYY MM DD 并且
  • 摩尔斯电码 至 英语

    我现在的问题是让 摩尔斯电码转英语 正常工作 将英语转换为莫尔斯电码的第一部分工作正常 我知道以前已经有人问过这个问题 但我不知道我做错了什么 我知道我需要在某个地方进行拆分 但我只是不确定将其放在代码中的何处 现在 莫尔斯电码到英语的部分

随机推荐

  • 时序图工具哪家强?

    设计时序是基本功 xff0c 怎样才能高效的设计时序图呢 xff1f 下面是我搜集到的工具以及我目前在用的工具 xff0c 希望大家能找到最适合自己的工具 Visio 使用步骤 Visio时序图工具 xff0c 其中有一些做好的模具 xff
  • FIFO设计笔记(双口RAM、同步FIFO、异步FIFO)Verilog及仿真

    文章目录 0 前言0 1 FIFO0 2 FIFO与RAM 1 异步双口RAM1 1 原理1 2 Verilog代码1 3 tb仿真 2 FIFO设计前瞻知识2 1 格雷码2 1 1 二进制转格雷码Verilog代码tb仿真 2 1 2 格
  • el-table在行单击时获取行的index

    一 涉及参数及事件 参数说明类型类型说明row class name行的 className 的回调方法 xff0c 也可以使用字符串为所有行设置一个固定的 className Function row rowIndex String ro
  • 时序分析与时序约束知识总结

    文章目录 时序分析如何查看时序报告时序分析的分类和任务HOLD违例修复 xff1a SETUP违例修复 xff1a 时序违例的修复 时序约束约束的分类时序约束的作用SDF文件OCVPVT共同路径悲观效应 CPP setup time与hol
  • Ubuntu 遭遇 无法打开锁文件 /var/lib/dpkg/lock - open (13: 权限不够)解决方案:

    作者本人最近在自学linux xff0c 一是作为遇到的问题的笔记 xff0c 二是希望给遇到一样问题的同学一个解决方案 有三个解决方案 xff1a 一 xff0c 在终端输入 sudo passwd root 然后输入两次密码 再输入 s
  • VS error c4996: 'fopen': This function or variable may be unsafe 解决方案

    一 摘要 在调用图像处理函数 xff0c 或者文字处理函数的时候 xff0c 会出现类似下面这种报错 错误 C4996 39 fopen 39 This function or variable may be unsafe Consider
  • 解决word中无法粘贴问题(Ctrl+V失灵问题)

    1 问题描述 最近打开word xff0c 发现ctrl 43 v不管用了 xff0c 怎么回事呢 xff1f 昨天还好好的 xff0c 怎么突然不灵了呢 后来发现每次打开都会提示MathType的问题 xff0c 我想肯定是这个插件惹的祸
  • 解决“双系统删除其中一个,BIOS仍然有其启动项”问题

    1 打开win10下的磁盘管理工具 xff0c 按Windows键 43 X键就可以在弹出来的菜单中找到磁盘管理 xff0c 打开后找到你当时安装ubuntu的分区 xff0c 在哪个分区右击删除卷即可 2 刚才已经删除了Ubuntu的系统
  • Ubuntu | 你的内存不够啦:c++: internal compiler error: Killed (program cc1plus)

    1 问题描述 在开发板上编译opencv的时候报了一个错 c 43 43 internal compiler error Killed program cc1plus Please submit a full bug report 主要是在
  • 神经网络例程-梯度下降法更新权值

    以下代码来自Deep Learning for Computer Vision with Python第九章 一 梯度下降法 xff08 Gradient Decent xff09 import the necessary packages
  • BP神经网络拟合函数

    摘要 xff1a 采用BP神经网络 拟合目标函数 xff0c 并添加高斯随机噪声 xff0c 通过使用feedforwardnet 函数构建BP神经网络进行函数拟合 通过调试设定的参数及所使用的训练函数 xff0c 得出结论 xff1a B
  • 替换=(等于号)正则表达式

    public void test4 String expression 61 34 a 61 0 34 String aa 61 34 34 aa 61 expression replaceAll 34 61 gt lt 61 61 gt
  • 参数共享机制soft-share and hard-share【机器学习】

    先讲hard share 言外之意就是来硬的 实际上两个参数的hard share就退变成了一个参数 在实际计算过程中 xff0c 我们就可以使用相同的参数进行计算 参数更新后也保持相同 再说soft share 实际上这才是真的两个不同参
  • Vue知识点:==与===的异同点

    61 61 与 61 61 61 的区别 61 61 61 61 61 相同点两者均是用于比较判断相等情况 xff0c 返回boolean值不同点用于比较或判断两者是否相等 xff0c 比较时可以自动转换数据类型用于较为严格的比较 xff0
  • Linux中的libc和glibc

    一 libc库 Linux平台提供的C标准库包括 xff1a 一组头文件 xff0c 定义了很多类型和宏 xff0c 声明了很多库函数 这些头文件放在哪些目录下取决于不同的编译器 xff0c stdarg h和stddef h位于 usr
  • STM32毕业设计 单片机RFID智能门禁系统 - 物联网 嵌入式

    文章目录 1 简介2 绪论2 1 课题背景与目的 3 射频识别3 1 射频识别技术3 2 射频识别模块3 2 1 RFID模块3 2 2 RFID模块组成 4 系统设计4 1 系统架构4 1 1 硬件部分4 1 2 软件部分 4 2 软件总
  • 四旋翼无人机飞行原理

    根据四旋翼对称的组成结构有两种飞行姿态 xff0c 一种是根据四旋翼十字对称的结构 xff0c 将处于同一水平线的一对机架梁作为x轴另一对梁作为y轴的 43 型飞行姿态 xff0c 另一种是将相应两个梁的对称轴线作为x轴 xff0c 另一条
  • 快速解决docker容器时间与本地时间不一致

    在docker容器和系统时间不一致是因为docker容器的原生时区为0时区 xff0c 而国内系统为东八区 xff0c 当然 xff0c 我们不深究其原因 1 xff09 进入容器 docker exec t i c360cc412528
  • 网页版时钟----简单版

    span class hljs doctype lt DOCTYPE html gt span span class hljs tag lt span class hljs title html span span class hljs a
  • Java Poi 向excel中插入图片

    博客 package com unicom yangjiabin utils import java awt image BufferedImage import java io ByteArrayOutputStream import j