public void TestAddToExistingFile() { HSSFWorkbook wb = new HSSFWorkbook(); HSSFSheet sh = wb.CreateSheet() as HSSFSheet; HSSFPatriarch patriarch = sh.CreateDrawingPatriarch() as HSSFPatriarch; HSSFShapeGroup group1 = patriarch.CreateGroup(new HSSFClientAnchor()); HSSFShapeGroup group2 = patriarch.CreateGroup(new HSSFClientAnchor()); group1.SetCoordinates(1, 2, 3, 4); group2.SetCoordinates(5, 6, 7, 8); wb = HSSFTestDataSamples.WriteOutAndReadBack(wb); sh = wb.GetSheetAt(0) as HSSFSheet; patriarch = sh.DrawingPatriarch as HSSFPatriarch; Assert.AreEqual(patriarch.Children.Count, 2); HSSFShapeGroup group3 = patriarch.CreateGroup(new HSSFClientAnchor()); group3.SetCoordinates(9, 10, 11, 12); wb = HSSFTestDataSamples.WriteOutAndReadBack(wb); sh = wb.GetSheetAt(0) as HSSFSheet; patriarch = sh.DrawingPatriarch as HSSFPatriarch; Assert.AreEqual(patriarch.Children.Count, 3); }
public void TestAddShapesToGroup() { HSSFWorkbook wb = new HSSFWorkbook(); // create a sheet with a text box HSSFSheet sheet = wb.CreateSheet() as HSSFSheet; HSSFPatriarch patriarch = sheet.CreateDrawingPatriarch() as HSSFPatriarch; HSSFShapeGroup group = patriarch.CreateGroup(new HSSFClientAnchor()); int index = wb.AddPicture(new byte[] { 1, 2, 3 }, PictureType.JPEG); group.CreatePicture(new HSSFChildAnchor(), index); HSSFPolygon polygon = group.CreatePolygon(new HSSFChildAnchor()); polygon.SetPoints(new int[] { 1, 100, 1 }, new int[] { 1, 50, 100 }); group.CreateTextbox(new HSSFChildAnchor()); group.CreateShape(new HSSFChildAnchor()); wb = HSSFTestDataSamples.WriteOutAndReadBack(wb); sheet = wb.GetSheetAt(0) as HSSFSheet; patriarch = sheet.DrawingPatriarch as HSSFPatriarch; Assert.AreEqual(1, patriarch.Children.Count); Assert.IsTrue(patriarch.Children[0] is HSSFShapeGroup); group = (HSSFShapeGroup)patriarch.Children[0]; Assert.AreEqual(group.Children.Count, 4); Assert.IsTrue(group.Children[0] is HSSFPicture); Assert.IsTrue(group.Children[1] is HSSFPolygon); Assert.IsTrue(group.Children[2] is HSSFTextbox); Assert.IsTrue(group.Children[3] is HSSFSimpleShape); HSSFShapeGroup group2 = patriarch.CreateGroup(new HSSFClientAnchor()); index = wb.AddPicture(new byte[] { 2, 2, 2 }, PictureType.JPEG); group2.CreatePicture(new HSSFChildAnchor(), index); polygon = group2.CreatePolygon(new HSSFChildAnchor()); polygon.SetPoints(new int[] { 1, 100, 1 }, new int[] { 1, 50, 100 }); group2.CreateTextbox(new HSSFChildAnchor()); group2.CreateShape(new HSSFChildAnchor()); group2.CreateShape(new HSSFChildAnchor()); wb = HSSFTestDataSamples.WriteOutAndReadBack(wb); sheet = wb.GetSheetAt(0) as HSSFSheet; patriarch = sheet.DrawingPatriarch as HSSFPatriarch; Assert.AreEqual(2, patriarch.Children.Count); group = (HSSFShapeGroup)patriarch.Children[1]; Assert.AreEqual(group.Children.Count, 5); Assert.IsTrue(group.Children[0] is HSSFPicture); Assert.IsTrue(group.Children[1] is HSSFPolygon); Assert.IsTrue(group.Children[2] is HSSFTextbox); Assert.IsTrue(group.Children[3] is HSSFSimpleShape); Assert.IsTrue(group.Children[4] is HSSFSimpleShape); int shapeid = group.ShapeId; }
public void SetUp() { workbook = new HSSFWorkbook(); NPOI.SS.UserModel.Sheet sheet = workbook.CreateSheet("Test"); patriarch = (HSSFPatriarch)sheet.CreateDrawingPatriarch(); escherGroupA = patriarch.CreateGroup(new HSSFClientAnchor(0, 0, 1022, 255, (short)0, 0, (short)0, 0)); escherGroupB = patriarch.CreateGroup(new HSSFClientAnchor(20, 30, 500, 200, (short)0, 0, (short)0, 0)); // escherGroup = new HSSFShapeGroup(null, new HSSFChildAnchor()); graphics = new EscherGraphics(this.escherGroupA, workbook, Color.Black, 1.0f); }
public void SetUp() { System.Threading.Thread.CurrentThread.CurrentCulture = System.Globalization.CultureInfo.CreateSpecificCulture("en-US"); workbook = new HSSFWorkbook(); NPOI.SS.UserModel.ISheet sheet = workbook.CreateSheet("Test"); patriarch = (HSSFPatriarch)sheet.CreateDrawingPatriarch(); escherGroupA = patriarch.CreateGroup(new HSSFClientAnchor(0, 0, 1022, 255, (short)0, 0, (short)0, 0)); escherGroupB = patriarch.CreateGroup(new HSSFClientAnchor(20, 30, 500, 200, (short)0, 0, (short)0, 0)); // escherGroup = new HSSFShapeGroup(null, new HSSFChildAnchor()); graphics = new EscherGraphics(this.escherGroupA, workbook, System.Drawing.Color.Black, 1.0f); }
public void TestBSEPictureRef() { HSSFWorkbook wb = new HSSFWorkbook(); HSSFSheet sh = wb.CreateSheet("Pictures") as HSSFSheet; HSSFPatriarch dr = sh.CreateDrawingPatriarch() as HSSFPatriarch; HSSFClientAnchor anchor = new HSSFClientAnchor(); InternalSheet ish = HSSFTestHelper.GetSheetForTest(sh); //register a picture byte[] data1 = new byte[] { 1, 2, 3 }; int idx1 = wb.AddPicture(data1, PictureType.JPEG); Assert.AreEqual(1, idx1); HSSFPicture p1 = dr.CreatePicture(anchor, idx1) as HSSFPicture; EscherBSERecord bse = wb.Workbook.GetBSERecord(idx1); Assert.AreEqual(bse.Ref, 1); dr.CreatePicture(new HSSFClientAnchor(), idx1); Assert.AreEqual(bse.Ref, 2); HSSFShapeGroup gr = dr.CreateGroup(new HSSFClientAnchor()); gr.CreatePicture(new HSSFChildAnchor(), idx1); Assert.AreEqual(bse.Ref, 3); }
private static void DrawSheet3(ISheet sheet3) { // Create a row and size one of the cells reasonably large IRow row = sheet3.CreateRow(2); row.HeightInPoints = 140; row.CreateCell(1); sheet3.SetColumnWidth(2, 9000); // Create the Drawing patriarch. This is the top level container for // all shapes. This will clear out any existing shapes for that sheet. HSSFPatriarch patriarch = (HSSFPatriarch)sheet3.CreateDrawingPatriarch(); // Create a shape group. HSSFShapeGroup group = patriarch.CreateGroup( new HSSFClientAnchor(0, 0, 900, 200, (short)2, 2, (short)2, 2)); // Create a couple of lines in the group. HSSFSimpleShape shape1 = group.CreateShape(new HSSFChildAnchor(3, 3, 500, 500)); shape1.ShapeType = (HSSFSimpleShape.OBJECT_TYPE_LINE); ((HSSFChildAnchor)shape1.Anchor).SetAnchor((short)3, 3, 500, 500); HSSFSimpleShape shape2 = group.CreateShape(new HSSFChildAnchor((short)1, 200, 400, 600)); shape2.ShapeType = (HSSFSimpleShape.OBJECT_TYPE_LINE); }
public void TestSetGetCoordinates() { HSSFWorkbook wb = new HSSFWorkbook(); HSSFSheet sh = wb.CreateSheet() as HSSFSheet; HSSFPatriarch patriarch = sh.CreateDrawingPatriarch() as HSSFPatriarch; HSSFShapeGroup group = patriarch.CreateGroup(new HSSFClientAnchor()); Assert.AreEqual(group.X1, 0); Assert.AreEqual(group.Y1, 0); Assert.AreEqual(group.X2, 1023); Assert.AreEqual(group.Y2, 255); group.SetCoordinates(1, 2, 3, 4); Assert.AreEqual(group.X1, 1); Assert.AreEqual(group.Y1, 2); Assert.AreEqual(group.X2, 3); Assert.AreEqual(group.Y2, 4); wb = HSSFTestDataSamples.WriteOutAndReadBack(wb); sh = wb.GetSheetAt(0) as HSSFSheet; patriarch = sh.DrawingPatriarch as HSSFPatriarch; group = (HSSFShapeGroup)patriarch.Children[(0)]; Assert.AreEqual(group.X1, 1); Assert.AreEqual(group.Y1, 2); Assert.AreEqual(group.X2, 3); Assert.AreEqual(group.Y2, 4); }
public void TestClearShapes() { HSSFWorkbook wb = new HSSFWorkbook(); HSSFSheet sheet = wb.CreateSheet() as HSSFSheet; HSSFPatriarch patriarch = sheet.CreateDrawingPatriarch() as HSSFPatriarch; HSSFShapeGroup group = patriarch.CreateGroup(new HSSFClientAnchor()); group.CreateShape(new HSSFChildAnchor()); group.CreateShape(new HSSFChildAnchor()); EscherAggregate agg = HSSFTestHelper.GetEscherAggregate(patriarch); Assert.AreEqual(agg.GetShapeToObjMapping().Count, 5); Assert.AreEqual(agg.TailRecords.Count, 0); Assert.AreEqual(group.Children.Count, 2); group.Clear(); Assert.AreEqual(agg.GetShapeToObjMapping().Count, 1); Assert.AreEqual(agg.TailRecords.Count, 0); Assert.AreEqual(group.Children.Count, 0); wb = HSSFTestDataSamples.WriteOutAndReadBack(wb); sheet = wb.GetSheetAt(0) as HSSFSheet; patriarch = sheet.DrawingPatriarch as HSSFPatriarch; group = (HSSFShapeGroup)patriarch.Children[(0)]; Assert.AreEqual(agg.GetShapeToObjMapping().Count, 1); Assert.AreEqual(agg.TailRecords.Count, 0); Assert.AreEqual(group.Children.Count, 0); }
public void TestSpgrRecord() { HSSFWorkbook wb = new HSSFWorkbook(); // create a sheet with a text box HSSFSheet sheet = wb.CreateSheet() as HSSFSheet; HSSFPatriarch patriarch = sheet.CreateDrawingPatriarch() as HSSFPatriarch; HSSFShapeGroup group = patriarch.CreateGroup(new HSSFClientAnchor()); Assert.AreSame(((EscherContainerRecord)group.GetEscherContainer().GetChild(0)).GetChildById(EscherSpgrRecord.RECORD_ID), GetSpgrRecord(group)); }
private static void DrawPolygon(HSSFPatriarch patriarch) { HSSFClientAnchor a = new HSSFClientAnchor(); a.SetAnchor((short)2, 2, 0, 0, (short)3, 3, 1023, 255); HSSFShapeGroup g = patriarch.CreateGroup(a); g.SetCoordinates(0, 0, 200, 200); HSSFPolygon p1 = g.CreatePolygon(new HSSFChildAnchor(0, 0, 200, 200)); p1.SetPolygonDrawArea(100, 100); p1.SetPoints(new int[] { 0, 90, 50 }, new int[] { 5, 5, 44 }); p1.SetFillColor(0, 255, 0); HSSFPolygon p2 = g.CreatePolygon(new HSSFChildAnchor(20, 20, 200, 200)); p2.SetPolygonDrawArea(200, 200); p2.SetPoints(new int[] { 120, 20, 150 }, new int[] { 105, 30, 195 }); p2.SetFillColor(255, 0, 0); }
public void TestRemoveShapes() { HSSFWorkbook wb = new HSSFWorkbook(); HSSFSheet sheet = wb.CreateSheet() as HSSFSheet; HSSFPatriarch patriarch = sheet.CreateDrawingPatriarch() as HSSFPatriarch; HSSFSimpleShape rectangle = patriarch.CreateSimpleShape(new HSSFClientAnchor()); rectangle.ShapeType = HSSFSimpleShape.OBJECT_TYPE_RECTANGLE; int idx = wb.AddPicture(new byte[] { 1, 2, 3 }, PictureType.JPEG); patriarch.CreatePicture(new HSSFClientAnchor(), idx); patriarch.CreateCellComment(new HSSFClientAnchor()); HSSFPolygon polygon = patriarch.CreatePolygon(new HSSFClientAnchor()); polygon.SetPoints(new int[] { 1, 2 }, new int[] { 2, 3 }); patriarch.CreateTextbox(new HSSFClientAnchor()); HSSFShapeGroup group = patriarch.CreateGroup(new HSSFClientAnchor()); group.CreateTextbox(new HSSFChildAnchor()); group.CreatePicture(new HSSFChildAnchor(), idx); Assert.AreEqual(patriarch.Children.Count, 6); Assert.AreEqual(group.Children.Count, 2); Assert.AreEqual(HSSFTestHelper.GetEscherAggregate(patriarch).GetShapeToObjMapping().Count, 12); Assert.AreEqual(HSSFTestHelper.GetEscherAggregate(patriarch).TailRecords.Count, 1); wb = HSSFTestDataSamples.WriteOutAndReadBack(wb); sheet = wb.GetSheetAt(0) as HSSFSheet; patriarch = sheet.DrawingPatriarch as HSSFPatriarch; Assert.AreEqual(HSSFTestHelper.GetEscherAggregate(patriarch).GetShapeToObjMapping().Count, 12); Assert.AreEqual(HSSFTestHelper.GetEscherAggregate(patriarch).TailRecords.Count, 1); Assert.AreEqual(patriarch.Children.Count, 6); group = (HSSFShapeGroup)patriarch.Children[5]; group.RemoveShape(group.Children[0]); Assert.AreEqual(HSSFTestHelper.GetEscherAggregate(patriarch).GetShapeToObjMapping().Count, 10); Assert.AreEqual(HSSFTestHelper.GetEscherAggregate(patriarch).TailRecords.Count, 1); wb = HSSFTestDataSamples.WriteOutAndReadBack(wb); sheet = wb.GetSheetAt(0) as HSSFSheet; patriarch = sheet.DrawingPatriarch as HSSFPatriarch; Assert.AreEqual(HSSFTestHelper.GetEscherAggregate(patriarch).GetShapeToObjMapping().Count, 10); Assert.AreEqual(HSSFTestHelper.GetEscherAggregate(patriarch).TailRecords.Count, 1); group = (HSSFShapeGroup)patriarch.Children[(5)]; patriarch.RemoveShape(group); Assert.AreEqual(HSSFTestHelper.GetEscherAggregate(patriarch).GetShapeToObjMapping().Count, 8); Assert.AreEqual(HSSFTestHelper.GetEscherAggregate(patriarch).TailRecords.Count, 1); wb = HSSFTestDataSamples.WriteOutAndReadBack(wb); sheet = wb.GetSheetAt(0) as HSSFSheet; patriarch = sheet.DrawingPatriarch as HSSFPatriarch; Assert.AreEqual(HSSFTestHelper.GetEscherAggregate(patriarch).GetShapeToObjMapping().Count, 8); Assert.AreEqual(HSSFTestHelper.GetEscherAggregate(patriarch).TailRecords.Count, 1); Assert.AreEqual(patriarch.Children.Count, 5); HSSFShape shape = patriarch.Children[0]; patriarch.RemoveShape(shape); Assert.AreEqual(HSSFTestHelper.GetEscherAggregate(patriarch).GetShapeToObjMapping().Count, 6); Assert.AreEqual(HSSFTestHelper.GetEscherAggregate(patriarch).TailRecords.Count, 1); Assert.AreEqual(patriarch.Children.Count, 4); wb = HSSFTestDataSamples.WriteOutAndReadBack(wb); sheet = wb.GetSheetAt(0) as HSSFSheet; patriarch = sheet.DrawingPatriarch as HSSFPatriarch; Assert.AreEqual(HSSFTestHelper.GetEscherAggregate(patriarch).GetShapeToObjMapping().Count, 6); Assert.AreEqual(HSSFTestHelper.GetEscherAggregate(patriarch).TailRecords.Count, 1); Assert.AreEqual(patriarch.Children.Count, 4); HSSFPicture picture = (HSSFPicture)patriarch.Children[0]; patriarch.RemoveShape(picture); Assert.AreEqual(HSSFTestHelper.GetEscherAggregate(patriarch).GetShapeToObjMapping().Count, 5); Assert.AreEqual(HSSFTestHelper.GetEscherAggregate(patriarch).TailRecords.Count, 1); Assert.AreEqual(patriarch.Children.Count, 3); wb = HSSFTestDataSamples.WriteOutAndReadBack(wb); sheet = wb.GetSheetAt(0) as HSSFSheet; patriarch = sheet.DrawingPatriarch as HSSFPatriarch; Assert.AreEqual(HSSFTestHelper.GetEscherAggregate(patriarch).GetShapeToObjMapping().Count, 5); Assert.AreEqual(HSSFTestHelper.GetEscherAggregate(patriarch).TailRecords.Count, 1); Assert.AreEqual(patriarch.Children.Count, 3); HSSFComment comment = (HSSFComment)patriarch.Children[0]; patriarch.RemoveShape(comment); Assert.AreEqual(HSSFTestHelper.GetEscherAggregate(patriarch).GetShapeToObjMapping().Count, 3); Assert.AreEqual(HSSFTestHelper.GetEscherAggregate(patriarch).TailRecords.Count, 0); Assert.AreEqual(patriarch.Children.Count, 2); wb = HSSFTestDataSamples.WriteOutAndReadBack(wb); sheet = wb.GetSheetAt(0) as HSSFSheet; patriarch = sheet.DrawingPatriarch as HSSFPatriarch; Assert.AreEqual(HSSFTestHelper.GetEscherAggregate(patriarch).GetShapeToObjMapping().Count, 3); Assert.AreEqual(HSSFTestHelper.GetEscherAggregate(patriarch).TailRecords.Count, 0); Assert.AreEqual(patriarch.Children.Count, 2); polygon = (HSSFPolygon)patriarch.Children[0]; patriarch.RemoveShape(polygon); Assert.AreEqual(HSSFTestHelper.GetEscherAggregate(patriarch).GetShapeToObjMapping().Count, 2); Assert.AreEqual(HSSFTestHelper.GetEscherAggregate(patriarch).TailRecords.Count, 0); Assert.AreEqual(patriarch.Children.Count, 1); wb = HSSFTestDataSamples.WriteOutAndReadBack(wb); sheet = wb.GetSheetAt(0) as HSSFSheet; patriarch = sheet.DrawingPatriarch as HSSFPatriarch; Assert.AreEqual(HSSFTestHelper.GetEscherAggregate(patriarch).GetShapeToObjMapping().Count, 2); Assert.AreEqual(HSSFTestHelper.GetEscherAggregate(patriarch).TailRecords.Count, 0); Assert.AreEqual(patriarch.Children.Count, 1); HSSFTextbox textbox = (HSSFTextbox)patriarch.Children[0]; patriarch.RemoveShape(textbox); Assert.AreEqual(HSSFTestHelper.GetEscherAggregate(patriarch).GetShapeToObjMapping().Count, 0); Assert.AreEqual(HSSFTestHelper.GetEscherAggregate(patriarch).TailRecords.Count, 0); Assert.AreEqual(patriarch.Children.Count, 0); wb = HSSFTestDataSamples.WriteOutAndReadBack(wb); sheet = wb.GetSheetAt(0) as HSSFSheet; patriarch = sheet.DrawingPatriarch as HSSFPatriarch; Assert.AreEqual(HSSFTestHelper.GetEscherAggregate(patriarch).GetShapeToObjMapping().Count, 0); Assert.AreEqual(HSSFTestHelper.GetEscherAggregate(patriarch).TailRecords.Count, 0); Assert.AreEqual(patriarch.Children.Count, 0); }
public void TestModify() { HSSFWorkbook wb = new HSSFWorkbook(); // create a sheet with a text box HSSFSheet sheet = wb.CreateSheet() as HSSFSheet; HSSFPatriarch patriarch = sheet.CreateDrawingPatriarch() as HSSFPatriarch; HSSFShapeGroup group1 = patriarch.CreateGroup(new HSSFClientAnchor(0, 0, 0, 0, (short)0, 0, (short)15, 25)); group1.SetCoordinates(0, 0, 792, 612); HSSFTextbox textbox1 = group1.CreateTextbox(new HSSFChildAnchor(100, 100, 300, 300)); HSSFRichTextString rt1 = new HSSFRichTextString("Hello, World!"); textbox1.String = rt1; // Write, read back and check that our text box is there wb = HSSFTestDataSamples.WriteOutAndReadBack(wb); sheet = wb.GetSheetAt(0) as HSSFSheet; patriarch = sheet.DrawingPatriarch as HSSFPatriarch; Assert.AreEqual(1, patriarch.Children.Count); group1 = (HSSFShapeGroup)patriarch.Children[(0)]; Assert.AreEqual(1, group1.Children.Count); textbox1 = (HSSFTextbox)group1.Children[(0)]; Assert.AreEqual("Hello, World!", textbox1.String.String); // modify anchor Assert.AreEqual(new HSSFChildAnchor(100, 100, 300, 300), textbox1.Anchor); HSSFChildAnchor newAnchor = new HSSFChildAnchor(200, 200, 400, 400); textbox1.Anchor = newAnchor; // modify text textbox1.String = new HSSFRichTextString("Hello, World! (modified)"); // add a new text box HSSFTextbox textbox2 = group1.CreateTextbox(new HSSFChildAnchor(400, 400, 600, 600)); HSSFRichTextString rt2 = new HSSFRichTextString("Hello, World-2"); textbox2.String = rt2; Assert.AreEqual(2, group1.Children.Count); wb = HSSFTestDataSamples.WriteOutAndReadBack(wb); sheet = wb.GetSheetAt(0) as HSSFSheet; patriarch = sheet.DrawingPatriarch as HSSFPatriarch; Assert.AreEqual(1, patriarch.Children.Count); group1 = (HSSFShapeGroup)patriarch.Children[(0)]; Assert.AreEqual(2, group1.Children.Count); textbox1 = (HSSFTextbox)group1.Children[(0)]; Assert.AreEqual("Hello, World! (modified)", textbox1.String.String); Assert.AreEqual(new HSSFChildAnchor(200, 200, 400, 400), textbox1.Anchor); textbox2 = (HSSFTextbox)group1.Children[(1)]; Assert.AreEqual("Hello, World-2", textbox2.String.String); Assert.AreEqual(new HSSFChildAnchor(400, 400, 600, 600), textbox2.Anchor); wb = HSSFTestDataSamples.WriteOutAndReadBack(wb); sheet = wb.GetSheetAt(0) as HSSFSheet; patriarch = sheet.DrawingPatriarch as HSSFPatriarch; group1 = (HSSFShapeGroup)patriarch.Children[(0)]; textbox1 = (HSSFTextbox)group1.Children[(0)]; textbox2 = (HSSFTextbox)group1.Children[(1)]; HSSFTextbox textbox3 = group1.CreateTextbox(new HSSFChildAnchor(400, 200, 600, 400)); HSSFRichTextString rt3 = new HSSFRichTextString("Hello, World-3"); textbox3.String = rt3; }