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);
相关推荐
YY&DS5 分钟前
Qt Designer 自定义控件已提升后,如何修改提升类
开发语言·qt
勇往直前plus6 分钟前
Python 属性访问与操作全解析:内置函数、魔法方法与描述符深度指南
java·网络·python
Arenaschi13 分钟前
关于GPT的版特点
java·网络·人工智能·windows·python·gpt
人道领域13 分钟前
【LeetCode刷题日记】108.将有序数组转换为二叉搜索树
java·算法·leetcode
右耳朵猫AI14 分钟前
Rust技术周刊 2026年第19周
开发语言·后端·rust
橙淮19 分钟前
并发编程(五)
java
Leweslyh25 分钟前
基于 Confucius 架构的无人集群网络控制原语解析
开发语言·网络·php
过期动态27 分钟前
【LeetCode 热题 100】无重复字符的最长子串
java·数据结构·spring boot·算法·leetcode·职场和发展
Yeats_Liao29 分钟前
好复杂的 IoT 世界:工业数据采集技术栈全景解析
java·物联网·struts
月落归舟37 分钟前
Java线程小记
java·开发语言