Package 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 Description protected static java.lang.String
NAMESPACE_A
protected static java.lang.String
NAMESPACE_C
-
Constructor Summary
Constructors Modifier Constructor Description protected
XSSFDrawing()
Create a new SpreadsheetML drawingXSSFDrawing(PackagePart part)
Construct a SpreadsheetML drawing from a package part
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected PackageRelationship
addPictureReference(int pictureIndex)
Add the indexed picture to this drawing relationsprotected 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 ShapeXSSFPicture
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 thesrcChart
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, onDocumentCreate, onDocumentRead, onDocumentRemove, onSave, prepareForCommit, read, rebase, removeRelation, removeRelation, removeRelation, setCommited, toString
-
-
-
-
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 beapplication/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 classPOIXMLDocumentPart
- 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 interfaceDrawing<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 interfaceDrawing<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) throws java.io.IOException, org.apache.xmlbeans.XmlException
Imports the chart from thesrcChart
into this drawing.- Parameters:
srcChart
- the source chart to be cloned into this drawing.- Returns:
- the newly created chart.
- Throws:
org.apache.xmlbeans.XmlException
java.io.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 interfaceDrawing<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 interfaceDrawing<XSSFShape>
- Parameters:
anchor
- the client anchor describes how this picture is attached to the sheet.storageId
- the storageId returned byWorkbook.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 interfacejava.lang.Iterable<XSSFShape>
-
getSheet
public XSSFSheet getSheet()
- Returns:
- the sheet associated with the drawing
-
-