/** * * @return list of shapes in this drawing */ public List <XSSFShape> GetShapes() { List <XSSFShape> lst = new List <XSSFShape>(); foreach (IEG_Anchor anchor in drawing.CellAnchors) { XSSFShape shape = null; if (anchor.picture != null) { shape = new XSSFPicture(this, anchor.picture); } else if (anchor.connector != null) { shape = new XSSFConnector(this, anchor.connector); } else if (anchor.groupShape != null) { shape = new XSSFShapeGroup(this, anchor.groupShape); } else if (anchor.graphicFrame != null) { shape = new XSSFGraphicFrame(this, anchor.graphicFrame); } else if (anchor.sp != null) { shape = new XSSFSimpleShape(this, anchor.sp); } if (shape != null) { shape.anchor = GetAnchorFromIEGAnchor(anchor); lst.Add(shape); } } //foreach (XmlNode obj in xmldoc.SelectNodes("./*/*/*")) //{ // XSSFShape shape = null; // if (obj.LocalName == "sp") // { // shape = new XSSFSimpleShape(this, obj); // } // else if (obj.LocalName == "pic") // { // shape = new XSSFPicture(this, obj); // } // else if (obj.LocalName == "cxnSp") // { // shape = new XSSFConnector(this, obj); // } // // else if (obj is CT_GraphicalObjectFrame) shape = new XSSFGraphicFrame(this, (CT_GraphicalObjectFrame)obj); // // else if (obj is CT_GroupShape) shape = new XSSFShapeGroup(this, (CT_GroupShape)obj); // if (shape != null) // { // shape.anchor = GetAnchorFromParent(obj); // lst.Add(shape); // } //} return(lst); }
public XSSFShapeGroup CreateGroup(XSSFClientAnchor anchor) { CT_GroupShape ctGroup = this.CreateTwoCellAnchor((IClientAnchor)anchor).AddNewGrpSp(); ctGroup.Set(XSSFShapeGroup.Prototype()); XSSFShapeGroup xssfShapeGroup = new XSSFShapeGroup(this, ctGroup); xssfShapeGroup.anchor = (XSSFAnchor)anchor; return(xssfShapeGroup); }
/** * Creates a simple shape. This includes such shapes as lines, rectangles, * and ovals. * * @param anchor the client anchor describes how this group is attached * to the sheet. * @return the newly Created shape. */ public XSSFShapeGroup CreateGroup(XSSFClientAnchor anchor) { CT_TwoCellAnchor ctAnchor = CreateTwoCellAnchor(anchor); CT_GroupShape ctGroup = ctAnchor.AddNewGrpSp(); ctGroup.Set(XSSFShapeGroup.Prototype()); XSSFShapeGroup shape = new XSSFShapeGroup(this, ctGroup); shape.anchor = anchor; return(shape); }
public void TestNew() { XSSFWorkbook wb = new XSSFWorkbook(); XSSFSheet sheet = (XSSFSheet)wb.CreateSheet(); //multiple calls of CreateDrawingPatriarch should return the same instance of XSSFDrawing XSSFDrawing dr1 = (XSSFDrawing)sheet.CreateDrawingPatriarch(); XSSFDrawing dr2 = (XSSFDrawing)sheet.CreateDrawingPatriarch(); Assert.AreSame(dr1, dr2); List <POIXMLDocumentPart> rels = sheet.GetRelations(); Assert.AreEqual(1, rels.Count); Assert.IsTrue(rels[0] is XSSFDrawing); XSSFDrawing drawing = (XSSFDrawing)rels[0]; String drawingId = drawing.GetPackageRelationship().Id; //there should be a relation to this Drawing in the worksheet Assert.IsTrue(sheet.GetCTWorksheet().IsSetDrawing()); Assert.AreEqual(drawingId, sheet.GetCTWorksheet().drawing.id); XSSFClientAnchor anchor = new XSSFClientAnchor(); XSSFConnector c1 = drawing.CreateConnector(anchor); c1.LineWidth = 3; c1.LineStyle = SS.UserModel.LineStyle.DashDotSys; XSSFShapeGroup c2 = drawing.CreateGroup(anchor); XSSFSimpleShape c3 = drawing.CreateSimpleShape(anchor); c3.SetText(new XSSFRichTextString("Test String")); c3.SetFillColor(128, 128, 128); XSSFTextBox c4 = (XSSFTextBox)drawing.CreateTextbox(anchor); XSSFRichTextString rt = new XSSFRichTextString("Test String"); rt.ApplyFont(0, 5, wb.CreateFont()); rt.ApplyFont(5, 6, wb.CreateFont()); c4.SetText(rt); c4.IsNoFill = (true); }
/** * * @return list of shapes in this drawing */ public List<XSSFShape> GetShapes() { List<XSSFShape> lst = new List<XSSFShape>(); foreach (IEG_Anchor anchor in drawing.CellAnchors) { XSSFShape shape = null; if (anchor.picture != null) { shape = new XSSFPicture(this, anchor.picture); } else if (anchor.connector != null) { shape = new XSSFConnector(this, anchor.connector); } else if (anchor.groupShape != null) { shape = new XSSFShapeGroup(this, anchor.groupShape); } else if (anchor.graphicFrame != null) { shape = new XSSFGraphicFrame(this, anchor.graphicFrame); } else if (anchor.sp != null) { shape = new XSSFSimpleShape(this, anchor.sp); } if (shape != null) { shape.anchor = GetAnchorFromIEGAnchor(anchor); lst.Add(shape); } } //foreach (XmlNode obj in xmldoc.SelectNodes("./*/*/*")) //{ // XSSFShape shape = null; // if (obj.LocalName == "sp") // { // shape = new XSSFSimpleShape(this, obj); // } // else if (obj.LocalName == "pic") // { // shape = new XSSFPicture(this, obj); // } // else if (obj.LocalName == "cxnSp") // { // shape = new XSSFConnector(this, obj); // } // // else if (obj is CT_GraphicalObjectFrame) shape = new XSSFGraphicFrame(this, (CT_GraphicalObjectFrame)obj); // // else if (obj is CT_GroupShape) shape = new XSSFShapeGroup(this, (CT_GroupShape)obj); // if (shape != null) // { // shape.anchor = GetAnchorFromParent(obj); // lst.Add(shape); // } //} return lst; }
/** * Creates a simple shape. This includes such shapes as lines, rectangles, * and ovals. * * @param anchor the client anchor describes how this group is attached * to the sheet. * @return the newly Created shape. */ public XSSFShapeGroup CreateGroup(XSSFClientAnchor anchor) { CT_TwoCellAnchor ctAnchor = CreateTwoCellAnchor(anchor); CT_GroupShape ctGroup = ctAnchor.AddNewGrpSp(); ctGroup.Set(XSSFShapeGroup.Prototype()); XSSFShapeGroup shape = new XSSFShapeGroup(this, ctGroup); shape.anchor = anchor; return shape; }
public void TestNew() { XSSFWorkbook wb = new XSSFWorkbook(); XSSFSheet sheet = (XSSFSheet)wb.CreateSheet(); //multiple calls of CreateDrawingPatriarch should return the same instance of XSSFDrawing XSSFDrawing dr1 = (XSSFDrawing)sheet.CreateDrawingPatriarch(); XSSFDrawing dr2 = (XSSFDrawing)sheet.CreateDrawingPatriarch(); Assert.AreSame(dr1, dr2); List <POIXMLDocumentPart> rels = sheet.GetRelations(); Assert.AreEqual(1, rels.Count); Assert.IsTrue(rels[0] is XSSFDrawing); XSSFDrawing drawing = (XSSFDrawing)rels[0]; String drawingId = drawing.GetPackageRelationship().Id; //there should be a relation to this Drawing in the worksheet Assert.IsTrue(sheet.GetCTWorksheet().IsSetDrawing()); Assert.AreEqual(drawingId, sheet.GetCTWorksheet().drawing.id); //XSSFClientAnchor anchor = new XSSFClientAnchor(); XSSFConnector c1 = drawing.CreateConnector(new XSSFClientAnchor(0, 0, 0, 0, 0, 0, 2, 2)); c1.LineWidth = 2.5; c1.LineStyle = SS.UserModel.LineStyle.DashDotSys; XSSFShapeGroup c2 = drawing.CreateGroup(new XSSFClientAnchor(0, 0, 0, 0, 0, 0, 5, 5)); Assert.IsNotNull(c2); XSSFSimpleShape c3 = drawing.CreateSimpleShape(new XSSFClientAnchor(0, 0, 0, 0, 2, 2, 3, 4)); c3.SetText(new XSSFRichTextString("Test String")); c3.SetFillColor(128, 128, 128); XSSFTextBox c4 = (XSSFTextBox)drawing.CreateTextbox(new XSSFClientAnchor(0, 0, 0, 0, 4, 4, 5, 6)); XSSFRichTextString rt = new XSSFRichTextString("Test String"); rt.ApplyFont(0, 5, wb.CreateFont()); rt.ApplyFont(5, 6, wb.CreateFont()); c4.SetText(rt); c4.IsNoFill = (true); Assert.AreEqual(4, drawing.GetCTDrawing().SizeOfTwoCellAnchorArray()); List <XSSFShape> shapes = drawing.GetShapes(); Assert.AreEqual(4, shapes.Count); Assert.IsTrue(shapes[(0)] is XSSFConnector); Assert.IsTrue(shapes[(1)] is XSSFShapeGroup); Assert.IsTrue(shapes[(2)] is XSSFSimpleShape); Assert.IsTrue(shapes[(3)] is XSSFSimpleShape); // Save and re-load it wb = XSSFTestDataSamples.WriteOutAndReadBack(wb) as XSSFWorkbook; sheet = wb.GetSheetAt(0) as XSSFSheet; // Check dr1 = sheet.CreateDrawingPatriarch() as XSSFDrawing; CT_Drawing ctDrawing = dr1.GetCTDrawing(); // Connector, shapes and text boxes are all two cell anchors Assert.AreEqual(0, ctDrawing.SizeOfAbsoluteAnchorArray()); Assert.AreEqual(0, ctDrawing.SizeOfOneCellAnchorArray()); Assert.AreEqual(4, ctDrawing.SizeOfTwoCellAnchorArray()); shapes = dr1.GetShapes(); Assert.AreEqual(4, shapes.Count); Assert.IsTrue(shapes[0] is XSSFConnector); Assert.IsTrue(shapes[1] is XSSFShapeGroup); Assert.IsTrue(shapes[2] is XSSFSimpleShape); Assert.IsTrue(shapes[3] is XSSFSimpleShape); // // Ensure it got the right namespaces //String xml = ctDrawing.ToString(); //Assert.IsTrue(xml.Contains("xmlns:xdr=\"http://schemas.openxmlformats.org/drawingml/2006/spreadsheetDrawing\"")); //Assert.IsTrue(xml.Contains("xmlns:a=\"http://schemas.openxmlformats.org/drawingml/2006/main\"")); Assert.IsNotNull(XSSFTestDataSamples.WriteOutAndReadBack(wb)); }