【Apache poi】读取【Excel】内图片及所在位置

需求是这样的,给你固定一个excel,里面有id和插入的图片,大概200M-1G左右。

读取后将图片写入文件存储服务器内,获取静态地址,再将静态地址更新到对应id上。

难点:这个你很难定位到图片的横纵坐标,因为图片并不是真的在单元格内(业务那边给定的模板就是如此)。

excel结构大概为:

 找了网上的代码,简单修修改改。

package com.main.util;

import org.apache.commons.io.FilenameUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.poi.POIXMLDocumentPart;
import org.apache.poi.hssf.usermodel.*;
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.xssf.usermodel.XSSFDrawing;
import org.apache.poi.xssf.usermodel.XSSFPicture;
import org.apache.poi.xssf.usermodel.XSSFShape;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.openxmlformats.schemas.drawingml.x2006.spreadsheetDrawing.CTMarker;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;

/**
 * created by rock-ayl on 2022-2-23
 * 解析excel内的图片所在单元格
 */
public class ExcelImageUtils {

    private final static Logger LOG = LoggerFactory.getLogger(ExcelImageUtils.class);

    /**
     * 根据文件解析excel内图片
     *
     * @param file       文件对象
     * @param sheetIndex 第几个sheet
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值