需求是这样的,给你固定一个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