java Execl 写入png图片 解决

1、先拿到Execl 的所有图片 放到list

java 复制代码
/**
     * 获取图片和位置 (xls)
     *
     * @param sheet
     * @return
     * @throws IOException
     */
    public Map<String, PictureData> getPictures(XSSFSheet sheet) throws IOException {
        Map<String, PictureData> map = new HashMap<String, PictureData>();
        XSSFDrawing drawing = sheet.getDrawingPatriarch();
        if (drawing != null) {
            List<XSSFShape> list = drawing.getShapes();//.getChildren();
            for (XSSFShape shape : list) {
                if (shape instanceof XSSFPicture) {
                    XSSFPicture picture = (XSSFPicture) shape;
                    XSSFClientAnchor cAnchor = (XSSFClientAnchor) picture.getAnchor();
                    PictureData pdata = picture.getPictureData();
                    String key = cAnchor.getRow1() + "-" + cAnchor.getCol1();
                    map.put(key, pdata);
                }
            }
        }
        return map;
    }

2、从list拿到某个图片,工具类写入图片

java 复制代码
            PictureData pictureData = maplist.get(rowNum + "-" + index);
                if (null != pictureData) {
                    String suggestFileExtension = pictureData.suggestFileExtension();// 图片格式
                    String localPath = ResourceFileUtil.dirPath(SecurityUtils.getUserId(), "wechat/tiku/question/option/") + rowNum + "." + suggestFileExtension;// 存储路径
                    File file = new File(localPath);
                    if (!file.getParentFile().exists()) {
                        file.getParentFile().mkdirs();
                    }
                    FileUtil.writeBytes(pictureData.getData(), localPath);
相关推荐
m0_748229996 小时前
PHP简易聊天室开发指南
开发语言·php
码云数智-大飞6 小时前
从回调地狱到Promise:JavaScript异步编程的演进之路
开发语言·javascript·ecmascript
froginwe116 小时前
jQuery 隐藏/显示
开发语言
一晌小贪欢6 小时前
深入理解 Python HTTP 请求:从基础到高级实战指南
开发语言·网络·python·网络协议·http
Cinema KI6 小时前
C++11(下) 入门三部曲终章(基础篇):夯实语法,解锁基础编程能力
开发语言·c++
m0_748229996 小时前
PHP+Vue打造实时聊天室
开发语言·vue.js·php
亓才孓6 小时前
[JDBC]事务
java·开发语言·数据库
CHU7290356 小时前
直播商城APP前端功能全景解析:打造沉浸式互动购物新体验
java·前端·小程序
枫叶丹46 小时前
【Qt开发】Qt界面优化(一)-> Qt样式表(QSS) 背景介绍
开发语言·前端·qt·系统架构
侠客行031712 小时前
Mybatis连接池实现及池化模式
java·mybatis·源码阅读