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);
相关推荐
o***Z44824 分钟前
JavaScript在Node.js中的内存管理
开发语言·javascript·node.js
毕设源码-邱学长36 分钟前
【开题答辩全过程】以 基于Java企业人事工资管理系统为例,包含答辩的问题和答案
java·开发语言
转转技术团队39 分钟前
回收系统架构演进实战:与Cursor结对扫清系统混沌
java·架构·cursor
AI分享猿40 分钟前
Java后端实战:SpringBoot接口遇异常请求,轻量WAF兼顾安全与性能
java·spring boot·安全
稚辉君.MCA_P8_Java1 小时前
Gemini永久会员 Java中的四边形不等式优化
java·后端·算法
DKPT1 小时前
ZGC和G1收集器相比哪个更好?
java·jvm·笔记·学习·spring
n***F8751 小时前
修改表字段属性,SQL总结
java·数据库·sql
q***69771 小时前
【Spring Boot】统一数据返回
java·spring boot·后端
Hollis Chuang1 小时前
Spring Boot 4.0 正式发布,人麻了。。。
java·spring boot·后端·spring
颜*鸣&空1 小时前
QT程序实现串口通信案例
开发语言·qt