java poi 获取excel中的图片(包含wps中嵌入单元格图片)

这篇具有很好参考价值的文章主要介绍了java poi 获取excel中的图片(包含wps中嵌入单元格图片)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

项目中有excel导入功能,并且需要导入excel中的图片;模板如图:

java poi 获取excel中的图片(包含wps中嵌入单元格图片),excel,wps,java,poi

已知office中插入的图片为浮动形式;如图:

java poi 获取excel中的图片(包含wps中嵌入单元格图片),excel,wps,java,poi

wps中可以插入浮动图片,也可以插入嵌入单元格图片;如图:

java poi 获取excel中的图片(包含wps中嵌入单元格图片),excel,wps,java,poi

并且在wps嵌入单元格形式的图片可以看到使用的是公式;如图:

java poi 获取excel中的图片(包含wps中嵌入单元格图片),excel,wps,java,poi

 问题来了,如何获取图片  并且将图片与单元格进行对应

浮动形式图片获取网上一搜一大把 不多说

主要说下wps如何将单元格和获取到的图片对应

开始分析:

java poi 获取excel中的图片(包含wps中嵌入单元格图片),excel,wps,java,poi

已知这个图片公式中的图片ID是 ID_DAF859A2B4904BF7A304D49029CAD99C

poi方法可以获取到工作表中所有图片  那么问题来了 如何将图片和图片ID对应起来

poi中没有方法可以找到对应关系 

java poi 获取excel中的图片(包含wps中嵌入单元格图片),excel,wps,java,poi

 开始找对应关系:

将excel文件改后缀为zip  并进行解压

java poi 获取excel中的图片(包含wps中嵌入单元格图片),excel,wps,java,poi

解压后看到文件xl路径下有个cellimages.xml

java poi 获取excel中的图片(包含wps中嵌入单元格图片),excel,wps,java,poi

 打开并格式化后内容如下:

java poi 获取excel中的图片(包含wps中嵌入单元格图片),excel,wps,java,poi

 可以看到这个文件里面有图片ID的数据结构 但是又是如何和图片对应起来的呢

上面我们发现如果有图片ID和图片名称的对应关系 那么我们就能确定图片ID和代码中获取的图片对应关系,但是很遗憾 这里没有这个对应关系          接下来继续找

java poi 获取excel中的图片(包含wps中嵌入单元格图片),excel,wps,java,poi

 我们发现在解压文件夹下xl\_rels有个cellimages.xml.rels 文件

java poi 获取excel中的图片(包含wps中嵌入单元格图片),excel,wps,java,poi

打开文件并格式化后如下:

java poi 获取excel中的图片(包含wps中嵌入单元格图片),excel,wps,java,poi

然后就可以找到对应关系了

java poi 获取excel中的图片(包含wps中嵌入单元格图片),excel,wps,java,poi 有了对应关系就可以开始撸代码了

接下来贴代码:

1.使用的依赖

 <dependency>
            <groupId>cn.hutool</groupId>
            <artifactId>hutool-all</artifactId>
            <version>5.8.11</version>
        </dependency>
        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi-scratchpad</artifactId>
            <version>4.1.2</version>
        </dependency>
        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi-ooxml</artifactId>
            <version>4.1.2</version>
        </dependency>
        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-lang3</artifactId>
            <version>3.12.0</version>
        </dependency>
        <dependency>
            <groupId>commons-io</groupId>
            <artifactId>commons-io</artifactId>
            <version>2.11.0</version>
        </dependency>
        <dependency>
            <groupId>cn.afterturn</groupId>
            <artifactId>easypoi-base</artifactId>
            <version>4.3.0</version>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>1.18.28</version>
            <scope>compile</scope>
        </dependency>
        <dependency>
            <groupId>com.alibaba.fastjson2</groupId>
            <artifactId>fastjson2</artifactId>
            <version>2.0.34</version>
        </dependency>

2.方法中传入代码中的图片公式 以及上传的文件 返回map类型

嵌入形式图片键为公式 浮动形式图片为起始单元格索引拼接字符串

java poi 获取excel中的图片(包含wps中嵌入单元格图片),excel,wps,java,poi

方法中首先截取字符串 获取图片ID

java poi 获取excel中的图片(包含wps中嵌入单元格图片),excel,wps,java,poi

 接下来获取xl/cellimages.xml文件中的rId和图片ID 

java poi 获取excel中的图片(包含wps中嵌入单元格图片),excel,wps,java,poi

再接下来获取rId和图片名称对应关系

java poi 获取excel中的图片(包含wps中嵌入单元格图片),excel,wps,java,poi

最后根据图片名称去对应工作表中获取到的图片

java poi 获取excel中的图片(包含wps中嵌入单元格图片),excel,wps,java,poi 就可以根据这个map去进行操作了

java poi 获取excel中的图片(包含wps中嵌入单元格图片),excel,wps,java,poi

已将代码打包 

java poi 获取excel中的图片(包含wps中嵌入单元格图片),excel,wps,java,poi文章来源地址https://www.toymoban.com/news/detail-725483.html

到了这里,关于java poi 获取excel中的图片(包含wps中嵌入单元格图片)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • poi解析word和excel,并且获取其中文字、图片、音频和视频的位置

            最近在做一个项目,要求解析出来word和excel中的一些属性,开始没当回事,以为很简单,但是做着做着发现不对劲,国内好像没人会有这种需求,也是费了很多事时间才找到方法,分享出去让你们少走弯路,我也是个新手,勿喷。         当然是poi了,免费,文档全

    2024年02月07日
    浏览(9)
  • Java POI导出Excel时,合并单元格没有边框的问题

    Java POI导出Excel时,合并单元格没有边框的问题

    今天用POI导出Excel的时候,发现导出的单元格确少边框,最后发现有2个方案可以解决。 CellRangeAddress的4个参数分别表示:起始行号,终止行号, 起始列号,终止列号

    2024年02月14日
    浏览(10)
  • Java excel poi 使用HSSFWorkbook 导出的excel wps能打开office打不开问题解决 Excel无法打开xx.xlsx,因为文件格式或扩展名无效......

    Java excel poi 使用HSSFWorkbook 导出的excel wps能打开office打不开问题解决 Excel无法打开xx.xlsx,因为文件格式或扩展名无效......

    1.在开发代码中涉及到报表导出 xlsx文件 office打不开问题 JavaPOI导出Excel有三种形式,他们分别是 1.HSSFWorkbook 2.XSSFWorkbook 3.SXSSFWorkbook。 pom文件如下 检查创建sheet代码如下 代码中用了 HSSFworkbook 去创建Sheet 导致office打不开原因就在这里 HSSFworkbook 解释如下: HSSFWorkbook:是操作Exc

    2024年02月16日
    浏览(16)
  • java poi导出excel单元格设置自定义背景颜色(任意颜色)

    java poi导出excel单元格设置自定义背景颜色(任意颜色)

    一、思考过程(看代码的移步第二点) 现有方法 现有资料多为使用 IndexedColors 设置颜色, 但是IndexedColors能设置的颜色有限 ,而需求中所要颜色都是花里胡哨的,需要真正的自定义; 而颜色的本质是rgb ,所以只要我们能自己设置rgb的值就能获取任意想要的颜色了; 源码分

    2023年04月10日
    浏览(7)
  • java poi excel 设置单元格富文本 粗体无效解决办法

    java poi excel 设置单元格富文本 粗体无效解决办法

    //富文本样式(一个单元格含有的多种样式格式)设置粗体无效解决办法 //设置RichTextString 的时候,给 font 设置 setBold(true) ; setItalic(true) 粗体 斜体 ,发现在office有效果,在wps 看不到加粗斜体效果。 //原因是而程序生成的加粗是b val=\\\"true\\\"/电脑的生成的xlsx的加粗是b/,所以解决

    2024年02月15日
    浏览(9)
  • Java POI (3)—— Excel单元格复制过程中公式不生效的问题

    Java POI (3)—— Excel单元格复制过程中公式不生效的问题

    在实现Excel中单元格的复制功能实现上,之前的代码是这样写的 这样写在进行大部分数据类型复制的过程的都没有问题,但除了公式类型的数据不能成功复制,网上有一些博主的做法是直接将 复制到公式的类型下,当然这样也可以成功的将源单元格中的数据复制过来,而且复

    2024年02月12日
    浏览(7)
  • Java poi之Excel文本图片内容提取

    Java poi之Excel文本图片内容提取

    应公司需求,需实现以下功能 Excel文本内容的替换; Excel文本内容的提取; Excel中图片的提取存放 此文章将使用Apache POI实现Excel文件中文本内容及图片的提取; Apache POI 是基于 Office Open XML 标准(OOXML)和 Microsoft 的 OLE 2 复合文档格式(OLE2)处理各种文件格式的开源项目。

    2024年02月05日
    浏览(15)
  • Java 通过POI快速导入带图片的excel并且图片不会丢失

    Java 通过POI快速导入带图片的excel并且图片不会丢失

    导入带图片的excel,这里也是研究了很久,在之前的博客中也有说明过,在项目使用过程中,发现很多时候 导入响应很慢 ,而且每次导入 图片都会丢失 几张,所以又花了点时间研究修改了下,具体如下: 这边在导入时,通过自定义注解,将excel读取到的数据转换到需要的实

    2024年02月01日
    浏览(13)
  • JAVA POI的excel中包含图片进行读取保存,单张图片,多张图片

    JAVA POI的excel中包含图片进行读取保存,单张图片,多张图片

    ---------------------------------------------效果---------------------------------------------------------- 1.单张图片 2.多张图片

    2024年02月11日
    浏览(11)
  • Java使用POI解析带图片的excel,简洁好用

    Java使用POI解析带图片的excel,简洁好用

            这天遇到这个这样的需求,需要导入表格中的数据,还得支持带图片;这应该难不倒咱阿里的EasyExcel,打开官网文档一看哦豁,明确表示暂时不支持解析带图片的Excel...... 好了,这下只能看POI了,然后想起来项目里引入的HuTools工具类,它应该封装好了吧;于是决定用

    2024年02月11日
    浏览(18)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包