hutool获取excel中的图片

简介: hutool获取excel中的图片

人无礼而何为,财非义而不取——耐施庵

依赖如下:

<dependency>
    <groupId>cn.hutool</groupId>
    <artifactId>hutool-all</artifactId>
    <version>5.8.6</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.poi/poi-ooxml -->
<dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi-ooxml</artifactId>
    <version>5.2.2</version>
</dependency>


代码如下:

package com.ruben;
import cn.hutool.core.io.FileUtil;
import cn.hutool.core.text.StrPool;
import cn.hutool.core.util.StrUtil;
import cn.hutool.poi.excel.ExcelReader;
import cn.hutool.poi.excel.ExcelUtil;
import org.apache.poi.ss.usermodel.PictureData;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.xssf.usermodel.XSSFAnchor;
import org.apache.poi.xssf.usermodel.XSSFPicture;
import java.io.File;
import java.util.List;
import java.util.stream.Collectors;
import java.util.stream.StreamSupport;
/**
 * ExcelDemo
 *
 * @author VampireAchao
 * @since 2022/9/7
 */
public class ExcelDemo {
    public static void main(String[] args) {
        String path = "D:\\file\\tmp\\001.xlsx";
        String localPath = "D:\\file\\tmp\\";
        final ExcelReader reader = ExcelUtil.getReader(path);
        Sheet sheet = reader.getSheet();
        List<XSSFPicture> pictures = StreamSupport.stream(sheet.getDrawingPatriarch().spliterator(), false)
                .filter(XSSFPicture.class::isInstance)
                .map(XSSFPicture.class::cast)
                .collect(Collectors.toList());
        pictures.parallelStream().forEach(picture -> {
            XSSFAnchor anchor = picture.getAnchor();
            String filename = StrUtil.format("{}-{}-{}-{}", anchor.getDx1(), anchor.getDy1(), anchor.getDx2(), anchor.getDy2());
            PictureData pdata = picture.getPictureData();
            String suggestFileExtension = pdata.suggestFileExtension();
            File file = FileUtil.writeBytes(pdata.getData(), localPath + filename + StrPool.DOT + suggestFileExtension);
            System.out.println(picture);
        });
        System.out.println(reader);
    }
}

执行后,其中excel包含的悬浮在单元格上方的图片已经成功提取

相关文章
iframe 在线预览pdf、word、excel、ppt、txt、图片、视频
iframe 在线预览pdf、word、excel、ppt、txt、图片、视频
|
Java 数据挖掘 BI
如何使用Hutool插入图片到Excel中?
如何使用Hutool插入图片到Excel中?
549 0
|
8月前
|
文字识别
分享:如何ocr识别身份证复印件并导出至excel表格 ? 图片批量识别导出excel表格应用,图片批量识别转excel表格的方法
该软件是一款OCR身份证识别工具,能批量处理图片,自动提取身份证信息并导出为Excel。支持百度网盘和腾讯云盘下载。用户界面直观,操作简单,适合新手。识别过程包括:打开图片、一键识别、导出结果。特别注意,此程序仅适用于身份证识别,不适用于其他类型的图片识别。
320 1
分享:如何ocr识别身份证复印件并导出至excel表格 ? 图片批量识别导出excel表格应用,图片批量识别转excel表格的方法
|
8月前
excel 图片地址转成图片
excel 图片地址转成图片
140 1
|
JSON 数据格式
excel的导入导出和异常非空 总计等处理;导出多个excel合并导出zip(hutool导出)(详细讲解包括分析等等)(一)
excel的导入导出和异常非空 总计等处理;导出多个excel合并导出zip(hutool导出)(详细讲解包括分析等等)(一)
155 0
Excel工具-HUTOOL-读取Excel
Excel工具-HUTOOL-读取Excel
hutool excel写数据
hutool excel写数据
119 1
|
JavaScript
vue导出excel表格(包含图片)
vue导出excel表格(包含图片)
vue导出excel表格(包含图片)
为什么Excel插入图片不显示,点击能够显示
为什么Excel插入图片不显示,点击能够显示
183 0
|
前端开发 JavaScript
前端实现文件预览(pdf、excel、word、图片)
前端实现文件预览(pdf、excel、word、图片)
398 0