org.apache.poi.xssf.usermodel

## Class XSSFDrawing

- java.lang.Object
- - org.apache.poi.ooxml.POIXMLDocumentPart
  - - org.apache.poi.xssf.usermodel.XSSFDrawing

- All Implemented Interfaces:
    java.lang.Iterable<XSSFShape>, Drawing<XSSFShape>, ShapeContainer<XSSFShape>

      public final class XSSFDrawing
      extends POIXMLDocumentPart
      implements Drawing<XSSFShape>

  Represents a SpreadsheetML drawing

- - ### Nested Class Summary

    - ### Nested classes/interfaces inherited from class org.apache.poi.ooxml.POIXMLDocumentPart

      `POIXMLDocumentPart.RelationPart`

  - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected static java.lang.String` | `NAMESPACE_A`
    `protected static java.lang.String` | `NAMESPACE_C`

  - ### Constructor Summary

    Constructors
    Modifier | Constructor and Description
    --- | ---
    `protected` | `XSSFDrawing()` Create a new SpreadsheetML drawing
    `` | `XSSFDrawing(PackagePart part)` Construct a SpreadsheetML drawing from a package part

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `protected PackageRelationship` | `addPictureReference(int pictureIndex)` Add the indexed picture to this drawing relations
    `protected void` | `commit()` Save the content in the underlying package part.
    `XSSFClientAnchor` | `createAnchor(int dx1, int dy1, int dx2, int dy2, int col1, int row1, int col2, int row2)` Creates a new client anchor and sets the top-left and bottom-right coordinates of the anchor.
    `XSSFComment` | `createCellComment(ClientAnchor anchor)` Creates a comment.
    `XSSFChart` | `createChart(ClientAnchor anchor)` Creates a chart.
    `XSSFChart` | `createChart(XSSFClientAnchor anchor)` Creates a chart.
    `XSSFConnector` | `createConnector(XSSFClientAnchor anchor)` Creates a simple shape.
    `XSSFShapeGroup` | `createGroup(XSSFClientAnchor anchor)` Creates a simple shape.
    `XSSFObjectData` | `createObjectData(ClientAnchor anchor, int storageId, int pictureIndex)` Adds a new OLE Package Shape
    `XSSFPicture` | `createPicture(ClientAnchor anchor, int pictureIndex)` Creates a picture.
    `XSSFPicture` | `createPicture(XSSFClientAnchor anchor, int pictureIndex)` Creates a picture.
    `XSSFSimpleShape` | `createSimpleShape(XSSFClientAnchor anchor)` Creates a simple shape.
    `XSSFTextBox` | `createTextbox(XSSFClientAnchor anchor)` Constructs a textbox under the drawing.
    `java.util.List<XSSFChart>` | `getCharts()` Returns all charts in this drawing.
    `org.openxmlformats.schemas.drawingml.x2006.spreadsheetDrawing.CTDrawing` | `getCTDrawing()` Return the underlying CTDrawing bean, the root element of the SpreadsheetML Drawing part.
    `java.util.List<XSSFShape>` | `getShapes()`
    `java.util.List<XSSFShape>` | `getShapes(XSSFShapeGroup groupshape)`
    `XSSFSheet` | `getSheet()`
    `XSSFChart` | `importChart(XSSFChart srcChart)` Imports the chart from the `srcChart` into this drawing.
    `java.util.Iterator<XSSFShape>` | `iterator()`

    - ### Methods inherited from class org.apache.poi.ooxml.POIXMLDocumentPart

      `_invokeOnDocumentRead, addRelation, createRelationship, createRelationship, createRelationship, getNextPartNumber, getPackagePart, getParent, getRelationById, getRelationId, getRelationPartById, getRelationParts, getRelations, getTargetPart, isCommited, isCommitted, onDocumentCreate, onDocumentRead, onDocumentRemove, onSave, prepareForCommit, read, rebase, removeRelation, removeRelation, removeRelation, setCommited, setCommitted, toString`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

    - ### Methods inherited from interface java.lang.Iterable

      `forEach, spliterator`

- - ### Field Detail

    - #### NAMESPACE_A

          protected static final java.lang.String NAMESPACE_A

      See Also:
        Constant Field Values

    - #### NAMESPACE_C

          protected static final java.lang.String NAMESPACE_C

      See Also:
        Constant Field Values

  - ### Constructor Detail

    - #### XSSFDrawing

          protected XSSFDrawing()

      Create a new SpreadsheetML drawing
      See Also:
        `XSSFSheet.createDrawingPatriarch()`

    - #### XSSFDrawing

          public XSSFDrawing(PackagePart part)
                      throws java.io.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:
        `java.io.IOException`
        `org.apache.xmlbeans.XmlException`
      Since:
        POI 3.14-Beta1

  - ### Method Detail

    - #### 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 java.io.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:
        `java.io.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(ClientAnchor)`

    - #### 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)

      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.
      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 java.util.List<XSSFChart> getCharts()

      Returns all charts in this drawing.

    - #### getShapes

          public java.util.List<XSSFShape> getShapes()

      Returns:
        list of shapes in this drawing

    - #### getShapes

          public java.util.List<XSSFShape> getShapes(XSSFShapeGroup groupshape)

      Returns:
        list of shapes in this shape group

    - #### iterator

          public java.util.Iterator<XSSFShape> iterator()

      Specified by:
        `iterator` in interface `java.lang.Iterable<XSSFShape>`

    - #### getSheet

          public XSSFSheet getSheet()

      Returns:
        the sheet associated with the drawing

Copyright 2020 The Apache Software Foundation or its licensors, as applicable.