【知识分享】Java用poi实现excel导出图片并浮在单元格上方

news/2024/7/21 7:38:59 标签: java, excel, 开发语言
当使用Java导出Excel并将图片放置在单元格上时,可以使用Apache POI库来实现。以下是一个简单的示例代码:
package org.example.demo2;

import com.aliyun.core.utils.IOUtils;
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;

public class test {

    public static void main(String[] args) throws IOException {
        // 创建工作簿
        Workbook workbook = new XSSFWorkbook();
        Sheet sheet = workbook.createSheet("Sheet1");

// 加载图片
        InputStream inputStream = new FileInputStream("500540b041a30ad044b5a19344f1b24f.jpg");
        byte[] imageBytes = IOUtils.toByteArray(inputStream);
        inputStream.close();

// 将图片插入到工作簿
        int pictureIdx = workbook.addPicture(imageBytes, Workbook.PICTURE_TYPE_JPEG);
        CreationHelper helper = workbook.getCreationHelper();
        Drawing<?> drawing = sheet.createDrawingPatriarch();
        ClientAnchor anchor = helper.createClientAnchor();
        anchor.setCol1(1); // 图片所在列
        anchor.setRow1(1); // 图片所在行
        Picture picture = drawing.createPicture(anchor, pictureIdx);

// 设置图片的大小
        picture.resize(); // 默认大小为图片的实际大小

// 保存工作簿
        FileOutputStream fileOut = new FileOutputStream("output.xlsx");
        workbook.write(fileOut);
        fileOut.close();
        workbook.close();
    }
}

在这个示例中,我们首先创建了一个工作簿和一个工作表,然后加载了图片文件,并将其插入到工作簿中。接下来,通过设置图片所在的列和行以及调整图片的大小,将图片放置在指定的单元格位置上。最后,将工作簿保存到指定路径下的Excel文件中。

请注意,上述代码中的路径和图片类型需要根据实际情况进行修改。希望这个示例能够帮助您实现将图片放置在Excel单元格上的功能。

实现结果


http://www.niftyadmin.cn/n/5259159.html

相关文章

android studio flutter启动一直卡在“ Running gradle task ‘assembledebug‘ “的解决问题

解决问题&#xff1a; 1、修改项目中android/build.gradle文件 将buildscript.repositories下面的 //google() //mavenCentral()注释掉&#xff0c;改成maven {allowInsecureProtocol trueurl https://maven.aliyun.com/repository/google } maven {allowInsecureProtocol t…

蓝桥杯小白赛第一场(1~6)(期望DP)

1、模拟 2、贪心 3、前缀和 4、猜结论 5、双指针 6、期望DP 1. 蘑菇炸弹 思路&#xff1a;一个简单的暴力模拟。 #include <bits/stdc.h> using namespace std; int main() {int n;cin >> n;vector<int>a(n , 0);for(int i 0 ; i < n ; i )cin &…

2023年好用的构建电子商务知识库软件推荐

随着电子商务的飞速发展&#xff0c;构建一个高效、精准的电子商务知识库软件成为了众多企业的迫切需求。为了帮助企业在浩如烟海的信息中迅速找到所需知识&#xff0c;提升运营效率&#xff0c;今天就推荐几款不错的电子商务知识库软件。 | 1、HelpLook HelpLook是一款零代码…

100天精通Python(可视化篇)——第105天:Pyecharts绘制多种炫酷极坐标系参数说明+代码实战

文章目录 专栏导读一、极坐标系介绍1. 极坐标系是什么?2. 极坐标系的应用场景?二、极坐标系配置选项1. 导包2. add函数三、极坐标系实战1. 极坐标系+折线图2. 极坐标系+散点图3. 极坐标系+涟漪散点图4. 极坐标系+饼图5. 极坐标系+柱状图书籍推荐(包邮送书)专栏导读 🔥�

如何本地搭建WampServer并结合cpolar内网穿透实现远程访问

文章目录 前言1.WampServer下载安装2.WampServer启动3.安装cpolar内网穿透3.1 注册账号3.2 下载cpolar客户端3.3 登录cpolar web ui管理界面3.4 创建公网地址 4.固定公网地址访问 前言 Wamp 是一个 Windows系统下的 Apache PHP Mysql 集成安装环境&#xff0c;是一组常用来…

AWR2243级联(TI文档)

摘要 本应用报告描述了TI的级联毫米波雷达系统。该解决方案基于TI的AWR2243雷达芯片。使用20 GHz的本振输入和输出路径&#xff0c;这些芯片中的几个级联在一起并同步工作。每个AWR2243芯片最多支持4个接收天线和3个发射天线。级联多个这样的芯片允许雷达系统使用更多的接收和发…

(五)STM32 NVIC 中断、优先级管理及 AFIO 时钟的开启

目录 1. 中断相关知识简介 1.1 什么是中断 1.2 什么是内中断、外中断 1.3 什么是可屏蔽中断、不可屏蔽中断 2. CM3 内核中断介绍 2.1 F103系统异常清单 2.2 F103 外部中断清单 3. NVIC 简介 3.1 NVIC 寄存器简介 3.2 NVIC 相关寄存器的介绍 4. 中断优先级 4.1 优先…

docker-compose 单机容器编排

dockerfile---yml文件 docker-compose需要用到 yml文件 yml文件是什么&#xff1f; 是一种标记语言&#xff0c;以竖列的形式展示序列化的数据格式&#xff0c;可读性高&#xff0c;类似于json格式。语法简单。 YAML通过缩进来表示数据结构&#xff0c;连续的项目用 - 减号来表…