• 记录POI获取excel中获取单元格内图片的数据和位置


    /**
         * 获取图片和位置 (xlsx)
         */
        public static Map<String, String> getPictures2(XSSFSheet sheet) throws Exception {
            Map<String, String> map = new HashMap<>(16);
            List<POIXMLDocumentPart> list = sheet.getRelations();
            for (POIXMLDocumentPart part : list) {
                if (part instanceof XSSFDrawing) {
                    XSSFDrawing drawing = (XSSFDrawing) part;
                    List<XSSFShape> shapes = drawing.getShapes();
                    for (XSSFShape shape : shapes) {
                        XSSFPicture picture = (XSSFPicture) shape;
                        // 会有空指针问题
                        // XSSFClientAnchor anchor = picture.getPreferredSize();
                        XSSFClientAnchor anchor = (XSSFClientAnchor) shape.getAnchor();
                        CTMarker marker = anchor.getFrom();
                        String key = marker.getRow() + "-" + marker.getCol();
                        String imgName = "lihang/lihang_picture_".concat(System.currentTimeMillis() + ".png");
                        String url = OssUtils.uploadToOss(picture.getPictureData().getData(), imgName, 1L);
                        map.put(key, url);
                    }
                }
            }
            return map;
        }
    
        /**
         * 获取图片和位置 (xls)
         */
        public static Map<String, String> getPictures1(HSSFSheet sheet) throws Exception {
            Map<String, String> map = new HashMap<>(16);
            List<HSSFShape> list = sheet.getDrawingPatriarch().getChildren();
            for (HSSFShape shape : list) {
                if (shape instanceof HSSFPicture) {
                    HSSFPicture picture = (HSSFPicture) shape;
                    HSSFClientAnchor cAnchor = (HSSFClientAnchor) picture.getAnchor();
                    // 行号-列号
                    String key = cAnchor.getRow1() + "-" + cAnchor.getCol1();
                    String imgName = "lihang/lihang_picture_".concat(System.currentTimeMillis() + ".png");
                    String url = OssUtils.uploadToOss(picture.getPictureData().getData(), imgName, 1L);
                    map.put(key, url);
                }
            }
            return map;
        }

      

  • 相关阅读:
    LeetCode-165 Compare Version Numbers
    shop--6.店铺注册--Thumbnailator图片处理和封装Util
    shop--6.店铺注册
    shop--5.使用Junit进行验证
    shop--4.SSM的各项配置
    shop--3.配置Maven
    shop--2.项目设计和框架搭建
    shop--1.创建maven项目
    AJAX 使用FormData 传送数据 DATA 为空 现象的处理
    Daemon Thread [http-nio-8080-exec-5] (Suspended (exception UnsatisfiedDependency))
  • 原文地址:https://www.cnblogs.com/Crush123/p/15211254.html
Copyright © 2020-2023  润新知