本文介绍: easyexcel虽然使用很方便,但是很多地方也无法高度定制化。明确表示暂时不支持解析图片的Exceljavaeasyexcel导入导出带有图片的Excelmain方法方式),web方式详见另一篇内嵌图片是WPS自定义函数,POI读取不到,实际中不要用内嵌图片即可或者直接微软office。由于电脑音频问题视频暂时没有解说声音, 回头重新补上。

简述

javaeasyexcel导入导出带有图片的Excelmain方法方式),web方式详见另一篇

由于电脑音频问题,视频暂时没有解说声音, 回头重新补上

前情提示

如果有任何疑问、需求技术支持,欢迎点赞留言

easyexcel虽然使用很方便,但是很多地方也无法高度定制化。明确表示暂时不支持解析图片的Excel

一说

账号的朋友,可以点个赞或者评论两句哦,评论后会获得积分奖励

视频代码

https://www.ixigua.com/7306755691145298471

office工具使用注意

支持WPS的内嵌

内嵌图片是WPS自定义函数,POI读取不到,实际中不要用内嵌图片即可或者直接用微软office

历史视频

Java中Excel操作实现下拉菜单多选https://www.ixigua.com/7304510132812153385

代码示例

package com.pgz.test.eetpic;

import cn.hutool.core.io.FileUtil;
import cn.hutool.core.lang.UUID;
import cn.hutool.core.util.StrUtil;
import cn.hutool.poi.excel.ExcelPicUtil;
import cn.hutool.poi.excel.ExcelUtil;
import com.alibaba.excel.EasyExcel;
import com.alibaba.excel.ExcelReader;
import com.alibaba.excel.event.AnalysisEventListener;
import com.alibaba.excel.read.metadata.ReadSheet;
import com.alibaba.fastjson.JSON;
import lombok.extern.slf4j.Slf4j;
import org.apache.poi.ss.usermodel.PictureData;

import java.io.FileInputStream;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;

/**
 * easy excel图片读取示例main方法方式web方式详见另外一个
 */
@Slf4j
public class EETest {
    public static void main(String[] args) throws Exception {
        String fileName = "/Users/janeyork/Downloads/487_1.xlsx";
        InputStream fis = new FileInputStream(fileName);

        AnalysisEventListener listener = new UserInfoDataListener();

        ExcelReader excelReader = EasyExcel.read(fis, ExcelData.class, listener).build();
        ReadSheet readSheet = EasyExcel.readSheet(0).build();
        ReadSheet readSheet2 = EasyExcel.readSheet(1).build();
        excelReader.read(readSheet);
        // 这里千万别忘记关闭,读的时候创建临时文件,到时磁盘会崩的
        excelReader.finish();

        List<ExcelData&gt; list = new ArrayList<&gt;();
        InputStream fis2 = new FileInputStream(fileName);
        cn.hutool.poi.excel.ExcelReader reader = ExcelUtil.getReader(fis2);
        //key是图片位置row_cell格式value是图片数据
        Map<String, PictureData&gt; picMap = ExcelPicUtil.getPicMap(reader.getWorkbook(), 0);

        log.info("图片:" + picMap.size());
        //这里只关心行数,把数据装到Bean里面去,也可用map循环中取获取
        picMap.forEach((k, v) -&gt; {
            log.info("----------------------");
            String[] split = k.split(StrUtil.UNDERLINE);
            Integer index = Integer.valueOf(split[0]);

            log.info("图片:" + k);
            log.info("图片:" + v);
            String mimeType = v.getMimeType();
            String[] mimeTypes = mimeType.split(StrUtil.SLASH);
            log.info("mimeType:" + mimeType);
            String fileName2 = "/Users/janeyork/Downloads/eetpictmp/"+UUID.randomUUID() + "." + mimeTypes[1];
            // 模拟上传
            FileUtil.writeBytes(v.getData(), fileName2);
            // 然后上传成功图片路径赋值实体类,然后调用service插入数据库即可
        });

    }

}

原文地址:https://blog.csdn.net/qq_31708763/article/details/134688373

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任

如若转载,请注明出处:http://www.7code.cn/show_37876.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注