## org.apache.poi.xssf.usermodel
Class XSSFDrawing

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

All Implemented Interfaces:
  Drawing

    public final class XSSFDrawing

extends POIXMLDocumentPart
implements Drawing

Represents a SpreadsheetML drawing

Author:
  Yegor Kozlov

Field Summary
`protected static java.lang.String` `NAMESPACE_A`
`protected static java.lang.String` `NAMESPACE_C`

Fields inherited from class org.apache.poi.POIXMLDocumentPart
`DEFAULT_XML_OPTIONS`

Constructor Summary
`protected` `XSSFDrawing()` Create a new SpreadsheetML drawing
`protected` `XSSFDrawing(PackagePart part, PackageRelationship rel)` Construct a SpreadsheetML drawing from a package part

Method Summary
`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.
`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()`

Methods inherited from class org.apache.poi.POIXMLDocumentPart
`addRelation, createRelationship, createRelationship, createRelationship, getPackagePart, getPackageRelationship, getParent, getRelationById, getRelationId, getRelations, getTargetPart, onDocumentCreate, onDocumentRead, onDocumentRemove, onSave, read, rebase, removeRelation, removeRelation, toString`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

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

    protected XSSFDrawing(PackagePart part,
                          PackageRelationship rel)
                   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`
    `rel` - the package relationship holding this drawing, the relationship type must be http://schemas.openxmlformats.org/officeDocument/2006/relationships/drawing
  Throws:
    `java.io.IOException`
    `org.apache.xmlbeans.XmlException`

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`

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

  Description copied from interface: `Drawing`
  Creates a chart.

  Specified by:
    `createChart` in interface `Drawing`
  Parameters:
    `anchor` - the client anchor describes how this chart is attached to the sheet.
  Returns:
    the newly created chart

### 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`
  Parameters:
    `anchor` - the client anchor describes how this comment is attached to the sheet.
  Returns:
    the newly created comment.

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

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