首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

【PUSDN】java中easyexcel导入导出带有图片的Excel(main方法方式)

java中easyexcel导入导出带有图片的Excel(main方法方式)

简述

java中easyexcel导入导出带有图片的Excel(main方法方式),web方式详见另一篇

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

前情提示

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

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

一说

部分截图、链接等因过期、更换域名、MD语法等可能不显示,可联系反馈(备注好博文地址),谢谢

带有#号、删除线、不操作、不执行字样的为提示或者备份bash,实际不执行

如果无法下载、无法复制,请评论后留言即可。收到消息后会第一时间回复~

知识付费,1对1技术支持:https://www.yuque.com/janeyork/blog/qorzdcrp4gbxy82w?singleDoc#

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

视频代码

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 list = new ArrayList();

InputStream fis2 = new FileInputStream(fileName);

cn.hutool.poi.excel.ExcelReader reader = ExcelUtil.getReader(fis2);

//key是图片位置,row_cell的格式;value是图片数据

Map picMap = ExcelPicUtil.getPicMap(reader.getWorkbook(), 0);

log.info("图片:" + picMap.size());

//这里只关心行数,把数据装到Bean里面去,也可用map在循环中取获取

picMap.forEach((k, v) -> {

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://page.om.qq.com/page/Ott8UPdh105E7oeBYU26swIA0
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券