Class XSSFDrawing

java.lang.Object
org.apache.poi.ooxml.POIXMLDocumentPart
org.apache.poi.xssf.usermodel.XSSFDrawing
All Implemented Interfaces:
Iterable<XSSFShape>, Drawing<XSSFShape>, ShapeContainer<XSSFShape>

public final class XSSFDrawing extends POIXMLDocumentPart implements Drawing<XSSFShape>
Represents a SpreadsheetML drawing
  • Field Details

  • Constructor Details

    • XSSFDrawing

      protected XSSFDrawing()
      Create a new SpreadsheetML drawing
      See Also:
    • XSSFDrawing

      public XSSFDrawing(PackagePart part) throws IOException, org.apache.xmlbeans.XmlException
      Construct a SpreadsheetML drawing from a package part
      Parameters:
      part - the package part holding the drawing data, the content type must be application/vnd.openxmlformats-officedocument.drawing+xml
      Throws:
      IOException
      org.apache.xmlbeans.XmlException
      Since:
      POI 3.14-Beta1
  • Method Details

    • getCTDrawing

      @Internal public org.openxmlformats.schemas.drawingml.x2006.spreadsheetDrawing.CTDrawing getCTDrawing()
      Return the underlying CTDrawing bean, the root element of the SpreadsheetML Drawing part.
      Returns:
      the underlying CTDrawing bean
    • commit

      protected void commit() throws IOException
      Description copied from class: POIXMLDocumentPart
      Save the content in the underlying package part. Default implementation is empty meaning that the package part is left unmodified.

      Sub-classes should override and add logic to marshal the "model" into Ooxml4J.

      For example, the code saving a generic XML entry may look as follows:

       protected void commit() throws IOException {
         PackagePart part = getPackagePart();
         OutputStream out = part.getOutputStream();
         XmlObject bean = getXmlBean(); //the "model" which holds changes in memory
         bean.save(out, DEFAULT_XML_OPTIONS);
         out.close();
       }
       
      Overrides:
      commit in class POIXMLDocumentPart
      Throws:
      IOException - a subclass may throw an IOException if the changes can't be committed
    • createAnchor

      public XSSFClientAnchor createAnchor(int dx1, int dy1, int dx2, int dy2, int col1, int row1, int col2, int row2)
      Description copied from interface: Drawing
      Creates a new client anchor and sets the top-left and bottom-right coordinates of the anchor.
      Specified by:
      createAnchor in interface Drawing<XSSFShape>
      Parameters:
      dx1 - the x coordinate in EMU within the first cell.
      dy1 - the y coordinate in EMU within the first cell.
      dx2 - the x coordinate in EMU within the second cell.
      dy2 - the y coordinate in EMU within the second cell.
      col1 - the column (0 based) of the first cell.
      row1 - the row (0 based) of the first cell.
      col2 - the column (0 based) of the second cell.
      row2 - the row (0 based) of the second cell.
      Returns:
      the newly created client anchor
    • createTextbox

      public XSSFTextBox createTextbox(XSSFClientAnchor anchor)
      Constructs a textbox under the drawing.
      Parameters:
      anchor - the client anchor describes how this group is attached to the sheet.
      Returns:
      the newly created textbox.
    • createPicture

      public XSSFPicture createPicture(XSSFClientAnchor anchor, int pictureIndex)
      Creates a picture.
      Parameters:
      anchor - the client anchor describes how this picture is attached to the sheet.
      pictureIndex - the index of the picture in the workbook collection of pictures, XSSFWorkbook.getAllPictures() .
      Returns:
      the newly created picture shape.
    • createPicture

      public XSSFPicture createPicture(ClientAnchor anchor, int pictureIndex)
      Description copied from interface: Drawing
      Creates a picture.
      Specified by:
      createPicture in interface Drawing<XSSFShape>
      Parameters:
      anchor - the client anchor describes how this picture is attached to the sheet.
      pictureIndex - the index of the picture in the workbook collection of pictures.
      Returns:
      the newly created picture.
    • createChart

      public XSSFChart createChart(XSSFClientAnchor anchor)
      Creates a chart.
      Parameters:
      anchor - the client anchor describes how this chart is attached to the sheet.
      Returns:
      the newly created chart
      See Also:
    • createChart

      public XSSFChart createChart(ClientAnchor anchor)
      Creates a chart.
      Parameters:
      anchor - the client anchor describes how this chart is attached to the sheet.
      Returns:
      the newly created chart
    • importChart

      public XSSFChart importChart(XSSFChart srcChart) throws IOException, org.apache.xmlbeans.XmlException
      Imports the chart from the srcChart into this drawing.
      Parameters:
      srcChart - the source chart to be cloned into this drawing.
      Returns:
      the newly created chart.
      Throws:
      org.apache.xmlbeans.XmlException
      IOException
      Since:
      4.0.0
    • addPictureReference

      protected PackageRelationship addPictureReference(int pictureIndex)
      Add the indexed picture to this drawing relations
      Parameters:
      pictureIndex - the index of the picture in the workbook collection of pictures, XSSFWorkbook.getAllPictures() .
    • createSimpleShape

      public XSSFSimpleShape createSimpleShape(XSSFClientAnchor anchor)
      Creates a simple shape. This includes such shapes as lines, rectangles, and ovals.
      Parameters:
      anchor - the client anchor describes how this group is attached to the sheet.
      Returns:
      the newly created shape.
    • createConnector

      public XSSFConnector createConnector(XSSFClientAnchor anchor)
      Creates a simple shape. This includes such shapes as lines, rectangles, and ovals.
      Parameters:
      anchor - the client anchor describes how this group is attached to the sheet.
      Returns:
      the newly created shape.
    • createGroup

      public XSSFShapeGroup createGroup(XSSFClientAnchor anchor)
      Creates a simple shape. This includes such shapes as lines, rectangles, and ovals.
      Parameters:
      anchor - the client anchor describes how this group is attached to the sheet.
      Returns:
      the newly created shape.
    • createCellComment

      public XSSFComment createCellComment(ClientAnchor anchor)
      Creates a comment.
      Specified by:
      createCellComment in interface Drawing<XSSFShape>
      Parameters:
      anchor - the client anchor describes how this comment is attached to the sheet.
      Returns:
      the newly created comment.
    • createObjectData

      public XSSFObjectData createObjectData(ClientAnchor anchor, int storageId, int pictureIndex)
      Description copied from interface: Drawing
      Adds a new OLE Package Shape
      Specified by:
      createObjectData in interface Drawing<XSSFShape>
      Parameters:
      anchor - the client anchor describes how this picture is attached to the sheet.
      storageId - the storageId returned by Workbook.addOlePackage(byte[], String, String, String)
      pictureIndex - the index of the picture (used as preview image) in the workbook collection of pictures.
      Returns:
      newly created shape
    • getCharts

      public List<XSSFChart> getCharts()
      Returns all charts in this drawing.
    • getShapes

      public List<XSSFShape> getShapes()
      Returns:
      list of shapes in this drawing
    • getShapes

      public List<XSSFShape> getShapes(XSSFShapeGroup groupshape)
      Returns:
      list of shapes in this shape group
    • iterator

      public Iterator<XSSFShape> iterator()
      Specified by:
      iterator in interface Iterable<XSSFShape>
    • getSheet

      public XSSFSheet getSheet()
      Returns:
      the sheet associated with the drawing