/** * Returns the shapes associated with this sheet, * an empty list or null if there is an exception */ public List<XSSFShape> getShapes() { PackagePart sheetPkg = getSheetPart(); List<XSSFShape> shapes = new LinkedList<>(); // Do we have a comments relationship? (Only ever one if so) try { PackageRelationshipCollection drawingsList = sheetPkg.getRelationshipsByType(XSSFRelation.DRAWINGS.getRelation()); for (int i = 0; i < drawingsList.size(); i++) { PackageRelationship drawings = drawingsList.getRelationship(i); PackagePartName drawingsName = PackagingURIHelper.createPartName(drawings.getTargetURI()); PackagePart drawingsPart = sheetPkg.getPackage().getPart(drawingsName); if (drawingsPart == null) { //parts can go missing; Excel ignores them silently -- TIKA-2134 LOGGER.log(POILogger.WARN, "Missing drawing: " + drawingsName + ". Skipping it."); continue; } XSSFDrawing drawing = new XSSFDrawing(drawingsPart); shapes.addAll(drawing.getShapes()); } } catch (XmlException|InvalidFormatException|IOException e) { LOGGER.log(POILogger.WARN, e); return null; } return shapes; }
/** * Returns the shapes associated with this sheet, * an empty list or null if there is an exception */ public List<XSSFShape> getShapes() { PackagePart sheetPkg = getSheetPart(); List<XSSFShape> shapes = new LinkedList<>(); // Do we have a comments relationship? (Only ever one if so) try { PackageRelationshipCollection drawingsList = sheetPkg.getRelationshipsByType(XSSFRelation.DRAWINGS.getRelation()); for (int i = 0; i < drawingsList.size(); i++) { PackageRelationship drawings = drawingsList.getRelationship(i); PackagePartName drawingsName = PackagingURIHelper.createPartName(drawings.getTargetURI()); PackagePart drawingsPart = sheetPkg.getPackage().getPart(drawingsName); if (drawingsPart == null) { //parts can go missing; Excel ignores them silently -- TIKA-2134 LOGGER.log(POILogger.WARN, "Missing drawing: " + drawingsName + ". Skipping it."); continue; } XSSFDrawing drawing = new XSSFDrawing(drawingsPart); shapes.addAll(drawing.getShapes()); } } catch (XmlException|InvalidFormatException|IOException e) { LOGGER.log(POILogger.WARN, e); return null; } return shapes; }