項(xiàng)目中有excel導(dǎo)入功能,并且需要導(dǎo)入excel中的圖片;模板如圖:
已知office中插入的圖片為浮動(dòng)形式;如圖:
wps中可以插入浮動(dòng)圖片,也可以插入嵌入單元格圖片;如圖:
并且在wps嵌入單元格形式的圖片可以看到使用的是公式;如圖:
?問題來(lái)了,如何獲取圖片? 并且將圖片與單元格進(jìn)行對(duì)應(yīng)
浮動(dòng)形式圖片獲取網(wǎng)上一搜一大把 不多說(shuō)
主要說(shuō)下wps如何將單元格和獲取到的圖片對(duì)應(yīng)
開始分析:
已知這個(gè)圖片公式中的圖片ID是?ID_DAF859A2B4904BF7A304D49029CAD99C
poi方法可以獲取到工作表中所有圖片? 那么問題來(lái)了 如何將圖片和圖片ID對(duì)應(yīng)起來(lái)
poi中沒有方法可以找到對(duì)應(yīng)關(guān)系?
?開始找對(duì)應(yīng)關(guān)系:
將excel文件改后綴為zip? 并進(jìn)行解壓
解壓后看到文件xl路徑下有個(gè)cellimages.xml
?打開并格式化后內(nèi)容如下:
?可以看到這個(gè)文件里面有圖片ID的數(shù)據(jù)結(jié)構(gòu) 但是又是如何和圖片對(duì)應(yīng)起來(lái)的呢
上面我們發(fā)現(xiàn)如果有圖片ID和圖片名稱的對(duì)應(yīng)關(guān)系 那么我們就能確定圖片ID和代碼中獲取的圖片對(duì)應(yīng)關(guān)系,但是很遺憾 這里沒有這個(gè)對(duì)應(yīng)關(guān)系? ????????接下來(lái)繼續(xù)找
?我們發(fā)現(xiàn)在解壓文件夾下xl\_rels有個(gè)cellimages.xml.rels 文件
打開文件并格式化后如下:
然后就可以找到對(duì)應(yīng)關(guān)系了
?有了對(duì)應(yīng)關(guān)系就可以開始擼代碼了
接下來(lái)貼代碼:
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類型
嵌入形式圖片鍵為公式 浮動(dòng)形式圖片為起始單元格索引拼接字符串
方法中首先截取字符串 獲取圖片ID
?接下來(lái)獲取xl/cellimages.xml文件中的rId和圖片ID?
再接下來(lái)獲取rId和圖片名稱對(duì)應(yīng)關(guān)系
最后根據(jù)圖片名稱去對(duì)應(yīng)工作表中獲取到的圖片
?就可以根據(jù)這個(gè)map去進(jìn)行操作了
已將代碼打包?文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-652936.html
文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-652936.html
到了這里,關(guān)于獲取excel中的圖片(包含wps中嵌入單元格圖片)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!