Java使用POI导出Excel、合并单元格、插入网络图片

2023-10-30

假设存在这样一张表A (audience),观众表
id,zjhm,name,gender,address
表B(seat),座位表,表明这个观众主动坐过哪些座位
id,
表C(check),校核表,表明这个观众被系统管理人员校核过哪些座位
id

一、插入网络图片并自适应

Excel中插入图片方法
参数1: 工作薄
参数2: 工作表名
参数3: 网络图片地址
参数4: 图片插入到哪一行
参数5: 图片插入到哪一列

    public static void insertImage(XSSFWorkbook workbook, String sheetName,String imageUrl,
                                   int row,int col) {
        try {
            URL url = new URL(imageUrl);
            HttpURLConnection conn = (HttpURLConnection) url.openConnection();
            conn.setRequestMethod("GET");
            conn.setConnectTimeout(5000);
            InputStream inputStream = conn.getInputStream();
            XSSFSheet sheet = workbook.getSheet(sheetName);
            XSSFDrawing patriarch = sheet.createDrawingPatriarch();
            XSSFClientAnchor anchor = new XSSFClientAnchor(0,0,255,255,
                    col,row,col+1,row+1);
            // 图片自适应单元格大小
            anchor.setAnchorType(AnchorType.byId(0));
            patriarch.createPicture(anchor,workbook.addPicture(inputStream,XSSFWorkbook.PICTURE_TYPE_WPG));
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

调用

		int startRowIndex = 2;
        int endRowIndex = 1;
        for (Audience audience : audienceList) {
            int checkSize = audience.getCheckList().size();
            int seatSize = audience.getSeatList().size();
            if (checkSize >= seatSize) {
                endRowIndex += checkSize;
            } else {
                endRowIndex += seatSize;
            }
            for (int i = 0; i < aliPersonFace.getSeatList().size(); i++) {
                AliPersonFace child = aliPersonFace.getSeatList().get(i);
                ExcelUtil.insertImage(xssfWorkbook, sheetName, child.getImageUrl(), startRowIndex + i, 10);
            }
            startRowIndex = endRowIndex + 1;
        }

待加:

  • 单元格合并居中
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Java使用POI导出Excel、合并单元格、插入网络图片 的相关文章

  • 光学标记阅读器的开源库[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我想要一个用于光学标记读取 OMR 的开源库 有这样的库吗 我想在我的 java 应用程序中使用这个库 zxing 可能对你有用 http
  • 使用 Jersey Client 忽略自签名 ssl 证书 [重复]

    这个问题在这里已经有答案了 我正在使用 Jersey 客户端库对 jboss 上运行的其余服务运行测试 我使用自签名证书在服务器上正确设置了 https 在本地主机上运行 但是 每当我使用 https url 运行测试时 都会收到以下错误
  • 在 Eclipse 中跨文件搜索注释掉的代码

    有没有一种快速方法可以在 Eclipse 中查找 Java 文件中所有注释掉的代码 也许是搜索中的任何选项 或者任何可以执行此操作的附加组件 它应该只能找到被注释掉的代码 而不是普通的注释 在 Eclipse 中 我只是在打开正则表达式复选
  • Android - 内容值覆盖现有行

    我正在尝试使用插入值ContentValues 我已将 5 个值插入到 5 列中 运行应用程序后 我只有最后一组值的行ContentValues 前四组未插入 ContentValues cv new ContentValues cv pu
  • 为什么不能将 String 添加到 List 类型?

    错误 The method add capture 1 of in the type List
  • java中main的返回类型

    我想知道为什么java中main方法只有void返回类型 public static void main String args 为什么main方法除了void之外没有其他返回类型 Thanks 简短的回答是 因为这就是语言规范 http
  • 在 Java 中查询 XML 的最简单方法

    我有带有 XML 的小字符串 例如 String myxml
  • 在 IntelliJ 中创建可执行 JAR(Java 18、JavaFX 18 Maven 项目),“警告:不支持的 JavaFX 配置...”

    我有一个 Java 18 JavaFX 18 Maven 项目 除了 javaFX 库之外 它还有很多库需要包含在工件中 我想创建一个工件 一个 jar 其中包含所有依赖项 我开始按照这个视频来创建 jar https www youtub
  • 捕获 XSS(跨站脚本)攻击的最佳正则表达式(Java 中)?

    杰夫实际上在净化 HTML http refactormycode com codes 333 sanitize html 但他的示例是用 C 编写的 而我实际上对 Java 版本更感兴趣 有人有更好的 Java 版本吗 他的示例是否足以直
  • 使用 Mockitos 传递参数化输入

    我正在使用 Mockito 进行单元测试 我想知道是否可以使用 Junit 测试中的方式发送参数化输入参数 e g InjectMocks MockClass mockClass new MockClass Test public void
  • 在同一台计算机上设置 JBoss 的多个实例

    我在 JBoss 社区中找到了下一页 http www jboss org community wiki ConfigurePorts http www jboss org community wiki ConfigurePorts 有下一
  • 我们可以用java定制一个垃圾收集器吗?

    我们知道java的垃圾收集器是一个低优先级线程 在java中我们可以创建任何具有高优先级的线程 那么是否有可能拥有我们自己定制的具有可变优先级的垃圾收集器线程 我们可以根据内存管理的级别进行设置 有人尝试过吗 如果是的话 您能分享一些关于如
  • Jar Manifest 文件的使用混乱

    我正在阅读使用 jar 工具打包 java 应用程序 我注意到 META INF 目录下创建了一个清单文件 对于一个简单的应用程序来说 感觉它没有任何作用 我在 stackoverflow 上搜索以了解 Manifest 文件的用法 我碰到
  • 如何检测java控制台中而不是GUI中的箭头键? [复制]

    这个问题在这里已经有答案了 我正在编写一个应用程序 我需要检测其中的箭头键 C 有getch 函数 我们想要获取输入 然后添加对 ASCII 值的检查 我们如何检测输入箭头键 谢谢 我写了一个Java类原始控制台输入 http www so
  • spring-boot-starter-web 2.4.4 导入 spring-web 和 spring-webmvc 版本 4.3.12 在 pom 中列为 5.3.5

    我正在使用spring boot starter web我的项目中的版本2 4 4 当我查看其内容时 它清楚地列出了 spring web 和 spring webmvc 5 3 5 版本 但是 由于某种原因 我可以看到这个 spring
  • servlet 如何获取 servlet 之外的文件的绝对路径?

    我们一直在使用 System getProperties user dir 来获取属性文件的位置 现在它已经部署在 Tomcat 上 通过 servlet 系统调用将位置指定为 tomcat 而不是属性文件所在的位置 我们如何动态调用属性文
  • JBoss 5 截断 base64 cookie 字符串的尾部 =

    从 JBoss 4 升级到 JBoss 5 后 我注意到最烦人的回归 它截断 base64 cookie 值的尾部等号 我花了很长时间才明白问题不是我的代码而是 JBoss 的 我用 google 搜索了一下 发现这是一个已知的问题issu
  • 如何使用 AEM 解析 org.apache.http.ssl?

    最终 我尝试在 Java 代码中使用 AWS S3 库来通过 AEM 启用服务器端 S3 上传 但在安装依赖项和 或由 AEM 识别时遇到了问题 每次我添加新的依赖项时 都会弹出五个问题 在我尝试构建的这个包中 这是我看到的错误 The i
  • 用于从链表中删除元素的大 O 表示法[重复]

    这个问题在这里已经有答案了 我正在阅读有关链接列表的内容 我发现 从链表中删除所需的元素需要 O n 运行时间 其中 n 是元素的数量 列表中的元素 http www cs mcgill ca dprecup courses IntroCS
  • Java applet 是否会违反同源策略

    我需要请求一些东西并从其他域获取信息 我知道由于同源政策 javascript 无法做到这一点 我的另一个选择是通过我的服务器发出代理请求 我不希望请求来自我的服务器的 IP 也不想为我的服务器创建额外的负载 并且希望客户端这样做 是否可以

随机推荐

  • 软件测试工作内容和职责有哪些

    目前 在IT行业中测试的职位数量仅次于开发 可以说是第二大技术就业岗位 然而许多人对测试师工作的理解还停留在 只需要像用户一样使用产品 然后发现有问题提交报告就行了 其实这是极其不准确的 软件测试师在测试产品前后通常有很多工作要做 下面我们
  • 计网笔记(1)- 计算机网络和因特网

    本章主要内容 构成网络的基本硬件和软件 我们将从网络的边缘开始 介绍网络中运行的端系统和网络应用 接下来探究网络的核心 介绍传输数据的链路和交换机 最后是连接端系统和网络核心的接入网和物理媒体 网络中数据的时延 丢包 吞吐量 计算机联网时的
  • stm32 串口发数据 0x00 变 0x80

    stm32 串口发数据 0x00 变 0x80 一般配置奇校验odd和偶校验even的时候 会出现这个问题 根本原因是stm32在计算长度的时候 会把校验位也计算进去 所以你之前设置的数据位8要改成数据位9才能正常运行 USART Init
  • Android Studio升级异常:Error : Program type already present: android.support.design.widget.CoordinatorLa

    解决的方案在build gradle增加 implementation com android support design 27 1 0 如图 最后Build一下就ok了 希望你跟我是一样的错误 能帮到你最好
  • [个人笔记]操作系统复习笔记

    一 绪论 OS的作用 用户与硬件之间的接口 管理计算机资源 抽象计算机资源 OS的发展 单道批处理系统 用户程序交给监控程序 由监控程序控制作业一个接一个交给IO处理 CPU等待IO 内存浪费 资源浪费 多道批处理系统 当一个作业在等待IO
  • 手动安装Kylin5.0版本的过程

    官方文档 https kylin apache org 目前kylin3 4版本是有docker版本和安装包的 5 0只有docker没有安装包 安装包 https kylin apache org download 安装kylin5 0
  • 56. 合并区间 57. 插入区间 66. 加一

    56 合并区间 以数组 intervals 表示若干个区间的集合 其中单个区间为 intervals i starti endi 请你合并所有重叠的区间 并返回 一个不重叠的区间数组 该数组需恰好覆盖输入中的所有区间 示例 1 输入 int
  • Win11怎么共享文件夹?Win11创建共享文件夹的方法

    共享文件夹能够实现在同一个局域网或者同一个工作组之内共享资源 这样不仅能够减少资源传递的时间 还可以提高工作效率 那么Win11怎么共享文件夹呢 还有详细的系统重装教程可阅读 具体操作如下 1 首先 按键盘上的 Win X 组合键 或右键点
  • FastDFS下载文件自定义命名

    上一节我们讲述了FastDFS的搭建和文件的上传 docker搭建FastDFS及遇到的问题解决 花开花落与云卷云舒的博客 CSDN博客 这一节我们讲讲如何将上传的文件下载到我们的本机并还原为原来的文件名 一 前言 在上一节中 我们知道我们
  • 最大权闭合子图的简单证明

    文章目录 一 概念 二 证明 2 1流网络的构造 2 2首先证明原图G的任何一个闭合子图都与新图 G G
  • docker报错WARNING: Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) afte

    完整报错 WARNING Retrying Retry total 4 connect None read None redirect None status None after connection broken by NewConne
  • springboot swagger2

    swagger2 介绍 Swagger Codegen 通过Codegen 可以将描述文件生成html格式和cwiki形式的接口文档 同时也能生成多钟语言的服务端和客户端的代码 支持通过jar包 docker node等方式在本地化执行生成
  • 查询练习题

    1 查询Student表中的所有记录的Sname Ssex和Class列 select Sname Ssex Class from Student 2 查询教师所有的单位即不重复的Depart列 select Depart count fr
  • AD20使用技巧和笔记

    AD20自学笔记 文章目录 AD20自学笔记 细节 规则 绘制PCB全流程 细节 AD20默认的铺铜 会出现相同网络的导线 如GND 将铺铜分隔开的情况 导致铜箔没有将区域完全覆盖 解决办法 选中铺铜区域 右键 属性 将 Pour Over
  • VS2022部署/安装 QT(以5.14.2为例)

    一 下载并安装Qt Visual Studio Tools 点击扩展 并选择管理扩展 二 搜索QT并下载Qt Visual Studio Tools 注意 如果wifi下载很慢 甚至不动 可以尝试用 热点 下载好后 关闭vs2022 它会自
  • Java基础 String StringBuffer StringBuilder的异同介绍

    一 String StringBuffer StringBuilder的对比 String StringBuffer StringBuilder 字符串类型 常量 不可变 变量 可变 变量 可变 线性安全 安全 final修饰 安全 方法s
  • 什么是PHP中的函数?它们如何使用?

    嘿 你好啊 PHP中的函数就像是一个超级有技能的工人 可以帮助我们更快更好地完成任务 它们就像是一个个工具箱 里面装满了各种用途的工具 函数可以执行各种任务 比如计算两个数的和 检查字符串是否包含某个字符 读取文件等等 使用函数可以让我们的
  • golang构造N叉树

    package main import fmt strconv sync type Spaninfo struct AppNames string json appNames ContainErr bool json containErr
  • STM32端口复用和重映射

    STM32的引脚可设置为可设置为 普通IO功能 复用功能 重映射功能 不过普通IO功能 复用功能用得比较多 复用 在TSM32里面 大部分的引脚都是有GPIO复用功能 也就是说 一个 GPIO如果可以复用为内置外设的功能引脚 那么当这个 G
  • Java使用POI导出Excel、合并单元格、插入网络图片

    假设存在这样一张表A audience 观众表 id zjhm name gender address 表B seat 座位表 表明这个观众主动坐过哪些座位 id 表C check 校核表 表明这个观众被系统管理人员校核过哪些座位 id 一