public void TestClearShapesForPatriarch() { HSSFWorkbook wb = new HSSFWorkbook(); HSSFSheet sheet = wb.CreateSheet() as HSSFSheet; HSSFPatriarch patriarch = sheet.CreateDrawingPatriarch() as HSSFPatriarch; patriarch.CreateSimpleShape(new HSSFClientAnchor()); patriarch.CreateSimpleShape(new HSSFClientAnchor()); patriarch.CreateCellComment(new HSSFClientAnchor()); EscherAggregate agg = HSSFTestHelper.GetEscherAggregate(patriarch); Assert.AreEqual(agg.GetShapeToObjMapping().Count, 6); Assert.AreEqual(agg.TailRecords.Count, 1); Assert.AreEqual(patriarch.Children.Count, 3); patriarch.Clear(); Assert.AreEqual(agg.GetShapeToObjMapping().Count, 0); Assert.AreEqual(agg.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(agg.GetShapeToObjMapping().Count, 0); Assert.AreEqual(agg.TailRecords.Count, 0); Assert.AreEqual(patriarch.Children.Count, 0); }
public void TestAllocateNewIds() { HSSFWorkbook wb = HSSFTestDataSamples.OpenSampleWorkbook("empty.xls"); HSSFSheet sheet = wb.GetSheetAt(0) as HSSFSheet; HSSFPatriarch patriarch = sheet.DrawingPatriarch as HSSFPatriarch; /** * 2048 - main SpContainer id * 2049 - existing shape id */ Assert.AreEqual(HSSFTestHelper.AllocateNewShapeId(patriarch), 2050); Assert.AreEqual(HSSFTestHelper.AllocateNewShapeId(patriarch), 2051); Assert.AreEqual(HSSFTestHelper.AllocateNewShapeId(patriarch), 2052); sheet = wb.GetSheetAt(1) as HSSFSheet; patriarch = sheet.DrawingPatriarch as HSSFPatriarch; /** * 3072 - main SpContainer id * 3073 - existing shape id */ Assert.AreEqual(HSSFTestHelper.AllocateNewShapeId(patriarch), 3074); Assert.AreEqual(HSSFTestHelper.AllocateNewShapeId(patriarch), 3075); Assert.AreEqual(HSSFTestHelper.AllocateNewShapeId(patriarch), 3076); sheet = wb.GetSheetAt(2) as HSSFSheet; patriarch = sheet.DrawingPatriarch as HSSFPatriarch; Assert.AreEqual(HSSFTestHelper.AllocateNewShapeId(patriarch), 1026); Assert.AreEqual(HSSFTestHelper.AllocateNewShapeId(patriarch), 1027); Assert.AreEqual(HSSFTestHelper.AllocateNewShapeId(patriarch), 1028); }
public void TestChildAnchorFromScratch() { HSSFChildAnchor anchor = new HSSFChildAnchor(); EscherChildAnchorRecord escher = (EscherChildAnchorRecord)HSSFTestHelper.GetEscherAnchor(anchor); anchor.SetAnchor(11, 12, 13, 14); Assert.AreEqual(anchor.Dx1, 11); Assert.AreEqual(escher.Dx1, 11); Assert.AreEqual(anchor.Dx2, 13); Assert.AreEqual(escher.Dx2, 13); Assert.AreEqual(anchor.Dy1, 12); Assert.AreEqual(escher.Dy1, 12); Assert.AreEqual(anchor.Dy2, 14); Assert.AreEqual(escher.Dy2, 14); anchor.Dx1 = (115); Assert.AreEqual(anchor.Dx1, 115); Assert.AreEqual(escher.Dx1, 115); anchor.Dx2 = (116); Assert.AreEqual(anchor.Dx2, 116); Assert.AreEqual(escher.Dx2, 116); anchor.Dy1 = (117); Assert.AreEqual(anchor.Dy1, 117); Assert.AreEqual(escher.Dy1, 117); anchor.Dy2 = (118); Assert.AreEqual(anchor.Dy2, 118); Assert.AreEqual(escher.Dy2, 118); }
public void TestCorrectOrderInOptRecord() { HSSFWorkbook wb = new HSSFWorkbook(); HSSFSheet sheet = wb.CreateSheet() as HSSFSheet; HSSFPatriarch patriarch = sheet.CreateDrawingPatriarch() as HSSFPatriarch; HSSFTextbox textbox = patriarch.CreateTextbox(new HSSFClientAnchor()) as HSSFTextbox; EscherOptRecord opt = HSSFTestHelper.GetOptRecord(textbox); String opt1Str = opt.ToXml(); textbox.FillColor = textbox.FillColor; EscherContainerRecord Container = HSSFTestHelper.GetEscherContainer(textbox); EscherOptRecord optRecord = Container.GetChildById(EscherOptRecord.RECORD_ID) as EscherOptRecord; Assert.AreEqual(opt1Str, optRecord.ToXml()); textbox.LineStyle = textbox.LineStyle; Assert.AreEqual(opt1Str, optRecord.ToXml()); textbox.LineWidth = textbox.LineWidth; Assert.AreEqual(opt1Str, optRecord.ToXml()); textbox.LineStyleColor = textbox.LineStyleColor; Assert.AreEqual(opt1Str, optRecord.ToXml()); wb.Close(); }
public void TestDgRecordNumShapes() { HSSFWorkbook wb = new HSSFWorkbook(); HSSFSheet sheet = wb.CreateSheet() as HSSFSheet; HSSFPatriarch patriarch = sheet.CreateDrawingPatriarch() as HSSFPatriarch; EscherAggregate aggregate = HSSFTestHelper.GetEscherAggregate(patriarch); EscherDgRecord dgRecord = (EscherDgRecord)aggregate.GetEscherRecord(0).GetChild(0) as EscherDgRecord; Assert.AreEqual(dgRecord.NumShapes, 1); }
public void TestTextForSimpleShape() { HSSFWorkbook wb1 = new HSSFWorkbook(); HSSFSheet sheet = wb1.CreateSheet() as HSSFSheet; HSSFPatriarch patriarch = sheet.CreateDrawingPatriarch() as HSSFPatriarch; HSSFSimpleShape shape = patriarch.CreateSimpleShape(new HSSFClientAnchor()); shape.ShapeType = HSSFSimpleShape.OBJECT_TYPE_RECTANGLE; EscherAggregate agg = HSSFTestHelper.GetEscherAggregate(patriarch); Assert.AreEqual(agg.GetShapeToObjMapping().Count, 2); HSSFWorkbook wb2 = HSSFTestDataSamples.WriteOutAndReadBack(wb1); wb1.Close(); sheet = wb2.GetSheetAt(0) as HSSFSheet; patriarch = sheet.DrawingPatriarch as HSSFPatriarch; shape = (HSSFSimpleShape)patriarch.Children[0]; agg = HSSFTestHelper.GetEscherAggregate(patriarch); Assert.AreEqual(agg.GetShapeToObjMapping().Count, 2); shape.String = new HSSFRichTextString("string1"); Assert.AreEqual(shape.String.String, "string1"); Assert.IsNotNull(HSSFTestHelper.GetEscherContainer(shape).GetChildById(EscherTextboxRecord.RECORD_ID)); Assert.AreEqual(agg.GetShapeToObjMapping().Count, 2); HSSFWorkbook wb3 = HSSFTestDataSamples.WriteOutAndReadBack(wb2); wb2.Close(); HSSFWorkbook wb4 = HSSFTestDataSamples.WriteOutAndReadBack(wb3); wb3.Close(); sheet = wb4.GetSheetAt(0) as HSSFSheet; patriarch = sheet.DrawingPatriarch as HSSFPatriarch; shape = (HSSFSimpleShape)patriarch.Children[0]; Assert.IsNotNull(HSSFTestHelper.GetTextObjRecord(shape)); Assert.AreEqual(shape.String.String, "string1"); Assert.IsNotNull(HSSFTestHelper.GetEscherContainer(shape).GetChildById(EscherTextboxRecord.RECORD_ID)); Assert.AreEqual(agg.GetShapeToObjMapping().Count, 2); wb4.Close(); }
public void TestOpt() { HSSFWorkbook wb = new HSSFWorkbook(); // create a sheet with a text box HSSFSheet sheet = wb.CreateSheet() as HSSFSheet; HSSFPatriarch patriarch = sheet.CreateDrawingPatriarch() as HSSFPatriarch; HSSFTextbox textbox = patriarch.CreateTextbox(new HSSFClientAnchor()) as HSSFTextbox; EscherOptRecord opt1 = HSSFTestHelper.GetOptRecord(textbox); EscherOptRecord opt2 = HSSFTestHelper.GetEscherContainer(textbox).GetChildById(EscherOptRecord.RECORD_ID) as EscherOptRecord; Assert.AreSame(opt1, opt2); }
public void TestClientAnchorFromScratch() { HSSFClientAnchor anchor = new HSSFClientAnchor(); EscherClientAnchorRecord escher = (EscherClientAnchorRecord)HSSFTestHelper.GetEscherAnchor(anchor); anchor.SetAnchor((short)11, 12, 13, 14, (short)15, 16, 17, 18); Assert.AreEqual(anchor.Col1, 11); Assert.AreEqual(escher.Col1, 11); Assert.AreEqual(anchor.Col2, 15); Assert.AreEqual(escher.Col2, 15); Assert.AreEqual(anchor.Row1, 12); Assert.AreEqual(escher.Row1, 12); Assert.AreEqual(anchor.Row2, 16); Assert.AreEqual(escher.Row2, 16); Assert.AreEqual(anchor.Dx1, 13); Assert.AreEqual(escher.Dx1, 13); Assert.AreEqual(anchor.Dx2, 17); Assert.AreEqual(escher.Dx2, 17); Assert.AreEqual(anchor.Dy1, 14); Assert.AreEqual(escher.Dy1, 14); Assert.AreEqual(anchor.Dy2, 18); Assert.AreEqual(escher.Dy2, 18); anchor.Col1 = (111); Assert.AreEqual(anchor.Col1, 111); Assert.AreEqual(escher.Col1, 111); anchor.Col2 = (112); Assert.AreEqual(anchor.Col2, 112); Assert.AreEqual(escher.Col2, 112); anchor.Row1 = (113); Assert.AreEqual(anchor.Row1, 113); Assert.AreEqual(escher.Row1, 113); anchor.Row2 = (114); Assert.AreEqual(anchor.Row2, 114); Assert.AreEqual(escher.Row2, 114); anchor.Dx1 = (115); Assert.AreEqual(anchor.Dx1, 115); Assert.AreEqual(escher.Dx1, 115); anchor.Dx2 = (116); Assert.AreEqual(anchor.Dx2, 116); Assert.AreEqual(escher.Dx2, 116); anchor.Dy1 = (117); Assert.AreEqual(anchor.Dy1, 117); Assert.AreEqual(escher.Dy1, 117); anchor.Dy2 = (118); Assert.AreEqual(anchor.Dy2, 118); Assert.AreEqual(escher.Dy2, 118); }
public void TestShapeIds() { HSSFWorkbook wb1 = new HSSFWorkbook(); HSSFSheet sheet1 = wb1.CreateSheet() as HSSFSheet; HSSFPatriarch patriarch1 = sheet1.CreateDrawingPatriarch() as HSSFPatriarch; for (int i = 0; i < 2; i++) { patriarch1.CreateSimpleShape(new HSSFClientAnchor()); } HSSFWorkbook wb2 = HSSFTestDataSamples.WriteOutAndReadBack(wb1); wb1.Close(); sheet1 = wb2.GetSheetAt(0) as HSSFSheet; patriarch1 = sheet1.DrawingPatriarch as HSSFPatriarch; EscherAggregate agg1 = HSSFTestHelper.GetEscherAggregate(patriarch1); // last shape ID cached in EscherDgRecord EscherDgRecord dg1 = agg1.GetEscherContainer().GetChildById(EscherDgRecord.RECORD_ID) as EscherDgRecord; Assert.AreEqual(1026, dg1.LastMSOSPID); // iterate over shapes and check shapeId EscherContainerRecord spgrContainer = agg1.GetEscherContainer().ChildContainers[0] as EscherContainerRecord; // root spContainer + 2 spContainers for shapes Assert.AreEqual(3, spgrContainer.ChildRecords.Count); EscherSpRecord sp0 = ((EscherContainerRecord)spgrContainer.GetChild(0)).GetChildById(EscherSpRecord.RECORD_ID) as EscherSpRecord; Assert.AreEqual(1024, sp0.ShapeId); EscherSpRecord sp1 = ((EscherContainerRecord)spgrContainer.GetChild(1)).GetChildById(EscherSpRecord.RECORD_ID) as EscherSpRecord; Assert.AreEqual(1025, sp1.ShapeId); EscherSpRecord sp2 = ((EscherContainerRecord)spgrContainer.GetChild(2)).GetChildById(EscherSpRecord.RECORD_ID) as EscherSpRecord; Assert.AreEqual(1026, sp2.ShapeId); wb2.Close(); }
public void TestCorrectOrderInSpContainer() { HSSFWorkbook wb = HSSFTestDataSamples.OpenSampleWorkbook("drawings.xls"); HSSFSheet sheet = wb.GetSheet("pictures") as HSSFSheet; HSSFPatriarch drawing = sheet.DrawingPatriarch as HSSFPatriarch; HSSFSimpleShape rectangle = (HSSFSimpleShape)drawing.Children[0]; Assert.AreEqual(HSSFTestHelper.GetEscherContainer(rectangle).GetChild(0).RecordId, EscherSpRecord.RECORD_ID); Assert.AreEqual(HSSFTestHelper.GetEscherContainer(rectangle).GetChild(1).RecordId, EscherOptRecord.RECORD_ID); Assert.AreEqual(HSSFTestHelper.GetEscherContainer(rectangle).GetChild(2).RecordId, EscherClientAnchorRecord.RECORD_ID); Assert.AreEqual(HSSFTestHelper.GetEscherContainer(rectangle).GetChild(3).RecordId, EscherClientDataRecord.RECORD_ID); rectangle.Anchor = (new HSSFClientAnchor()); Assert.AreEqual(HSSFTestHelper.GetEscherContainer(rectangle).GetChild(0).RecordId, EscherSpRecord.RECORD_ID); Assert.AreEqual(HSSFTestHelper.GetEscherContainer(rectangle).GetChild(1).RecordId, EscherOptRecord.RECORD_ID); Assert.AreEqual(HSSFTestHelper.GetEscherContainer(rectangle).GetChild(2).RecordId, EscherClientAnchorRecord.RECORD_ID); Assert.AreEqual(HSSFTestHelper.GetEscherContainer(rectangle).GetChild(3).RecordId, EscherClientDataRecord.RECORD_ID); }
public void TestShapeEscherMustHaveAnchorRecord() { HSSFWorkbook wb = new HSSFWorkbook(); HSSFSheet sheet = wb.CreateSheet() as HSSFSheet; HSSFPatriarch drawing = sheet.CreateDrawingPatriarch() as HSSFPatriarch; HSSFClientAnchor anchor = new HSSFClientAnchor(10, 10, 200, 200, (short)2, 2, (short)15, 15); anchor.AnchorType = (2); HSSFSimpleShape rectangle = drawing.CreateSimpleShape(anchor); rectangle.ShapeType = (HSSFSimpleShape.OBJECT_TYPE_RECTANGLE); rectangle.Anchor = (anchor); Assert.IsNotNull(HSSFTestHelper.GetEscherAnchor(anchor)); Assert.IsNotNull(HSSFTestHelper.GetEscherContainer(rectangle)); Assert.IsTrue(HSSFTestHelper.GetEscherAnchor(anchor).Equals(HSSFTestHelper.GetEscherContainer(rectangle).GetChildById(EscherClientAnchorRecord.RECORD_ID))); }
public void TestDgContainerMustBeRootOfHSSFSheetEscherRecords() { HSSFWorkbook wb = HSSFTestDataSamples.OpenSampleWorkbook("47251.xls"); HSSFSheet sh = wb.GetSheetAt(0) as HSSFSheet; InternalSheet ish = HSSFTestHelper.GetSheetForTest(sh); List <RecordBase> records = ish.Records; // records to be aggregated List <RecordBase> dgRecords = records.GetRange(19, 23 - 19); byte[] dgBytes = toByteArray(dgRecords); IDrawing d = sh.DrawingPatriarch; EscherAggregate agg = (EscherAggregate)ish.FindFirstRecordBySid(EscherAggregate.sid); Assert.AreEqual(true, agg.EscherRecords[0] is EscherContainerRecord); Assert.AreEqual(EscherContainerRecord.DG_CONTAINER, agg.EscherRecords[0].RecordId); Assert.AreEqual((short)0x0, agg.EscherRecords[0].Options); agg = (EscherAggregate)ish.FindFirstRecordBySid(EscherAggregate.sid); byte[] dgBytesAfterSave = agg.Serialize(); Assert.AreEqual(dgBytes.Length, dgBytesAfterSave.Length, "different size of drawing data before and after save"); Assert.IsTrue(Arrays.Equals(dgBytes, dgBytesAfterSave), "drawing data before and after save is different"); }
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); }
/** * create a rectangle, save the workbook, read back and verify that all shape properties are there */ public void TestReadWriteRectangle() { HSSFWorkbook wb = new HSSFWorkbook(); HSSFSheet sheet = wb.CreateSheet() as HSSFSheet; HSSFPatriarch drawing = sheet.CreateDrawingPatriarch() as HSSFPatriarch; HSSFClientAnchor anchor = new HSSFClientAnchor(10, 10, 50, 50, (short)2, 2, (short)4, 4); anchor.AnchorType = (AnchorType)(2); Assert.AreEqual(anchor.AnchorType, 2); HSSFSimpleShape rectangle = drawing.CreateSimpleShape(anchor); rectangle.ShapeType = (HSSFSimpleShape.OBJECT_TYPE_RECTANGLE); rectangle.LineWidth = (10000); rectangle.FillColor = (777); Assert.AreEqual(rectangle.FillColor, 777); Assert.AreEqual(10000, rectangle.LineWidth); rectangle.LineStyle = (LineStyle)(10); Assert.AreEqual(10, rectangle.LineStyle); Assert.AreEqual(rectangle.WrapText, HSSFSimpleShape.WRAP_SQUARE); rectangle.LineStyleColor = (1111); rectangle.IsNoFill = (true); rectangle.WrapText = (HSSFSimpleShape.WRAP_NONE); rectangle.String = (new HSSFRichTextString("teeeest")); Assert.AreEqual(rectangle.LineStyleColor, 1111); Assert.AreEqual(((EscherSimpleProperty)((EscherOptRecord)HSSFTestHelper.GetEscherContainer(rectangle).GetChildById(EscherOptRecord.RECORD_ID)) .Lookup(EscherProperties.TEXT__TEXTID)).PropertyValue, "teeeest".GetHashCode()); Assert.AreEqual(rectangle.IsNoFill, true); Assert.AreEqual(rectangle.WrapText, HSSFSimpleShape.WRAP_NONE); Assert.AreEqual(rectangle.String.String, "teeeest"); wb = HSSFTestDataSamples.WriteOutAndReadBack(wb); sheet = wb.GetSheetAt(0) as HSSFSheet; drawing = sheet.DrawingPatriarch as HSSFPatriarch; Assert.AreEqual(1, drawing.Children.Count); HSSFSimpleShape rectangle2 = (HSSFSimpleShape)drawing.Children[0]; Assert.AreEqual(HSSFSimpleShape.OBJECT_TYPE_RECTANGLE, rectangle2.ShapeType); Assert.AreEqual(10000, rectangle2.LineWidth); Assert.AreEqual(10, (int)rectangle2.LineStyle); Assert.AreEqual(anchor, rectangle2.Anchor); Assert.AreEqual(rectangle2.LineStyleColor, 1111); Assert.AreEqual(rectangle2.FillColor, 777); Assert.AreEqual(rectangle2.IsNoFill, true); Assert.AreEqual(rectangle2.String.String, "teeeest"); Assert.AreEqual(rectangle.WrapText, HSSFSimpleShape.WRAP_NONE); rectangle2.FillColor = (3333); rectangle2.LineStyle = (LineStyle)(9); rectangle2.LineStyleColor = (4444); rectangle2.IsNoFill = (false); rectangle2.LineWidth = (77); rectangle2.Anchor.Dx1 = 2; rectangle2.Anchor.Dx2 = 3; rectangle2.Anchor.Dy1 = (4); rectangle2.Anchor.Dy2 = (5); rectangle.WrapText = (HSSFSimpleShape.WRAP_BY_POINTS); rectangle2.String = (new HSSFRichTextString("test22")); wb = HSSFTestDataSamples.WriteOutAndReadBack(wb); sheet = wb.GetSheetAt(0) as HSSFSheet; drawing = sheet.DrawingPatriarch as HSSFPatriarch; Assert.AreEqual(1, drawing.Children.Count); rectangle2 = (HSSFSimpleShape)drawing.Children[0]; Assert.AreEqual(HSSFSimpleShape.OBJECT_TYPE_RECTANGLE, rectangle2.ShapeType); Assert.AreEqual(rectangle.WrapText, HSSFSimpleShape.WRAP_BY_POINTS); Assert.AreEqual(77, rectangle2.LineWidth); Assert.AreEqual(9, rectangle2.LineStyle); Assert.AreEqual(rectangle2.LineStyleColor, 4444); Assert.AreEqual(rectangle2.FillColor, 3333); Assert.AreEqual(rectangle2.Anchor.Dx1, 2); Assert.AreEqual(rectangle2.Anchor.Dx2, 3); Assert.AreEqual(rectangle2.Anchor.Dy1, 4); Assert.AreEqual(rectangle2.Anchor.Dy2, 5); Assert.AreEqual(rectangle2.IsNoFill, false); Assert.AreEqual(rectangle2.String.String, "test22"); HSSFSimpleShape rect3 = drawing.CreateSimpleShape(new HSSFClientAnchor()); rect3.ShapeType = (HSSFSimpleShape.OBJECT_TYPE_RECTANGLE); wb = HSSFTestDataSamples.WriteOutAndReadBack(wb); drawing = (wb.GetSheetAt(0) as HSSFSheet).DrawingPatriarch as HSSFPatriarch; Assert.AreEqual(drawing.Children.Count, 2); }
public void TestWithoutFeatRecord() { HSSFWorkbook hssf = HSSFTestDataSamples.OpenSampleWorkbook("46136-WithWarnings.xls"); InternalWorkbook wb = HSSFTestHelper.GetWorkbookForTest(hssf); Assert.AreEqual(1, hssf.NumberOfSheets); int countFR = 0; int countFRH = 0; // Check on the workbook, but shouldn't be there! foreach (Record r in wb.Records) { if (r is FeatRecord) { countFR++; } else if (r.Sid == FeatRecord.sid) { countFR++; } if (r is FeatHdrRecord) { countFRH++; } else if (r.Sid == FeatHdrRecord.sid) { countFRH++; } } Assert.AreEqual(0, countFR); Assert.AreEqual(0, countFRH); // Now check on the sheet HSSFSheet s = (HSSFSheet)hssf.GetSheetAt(0); InternalSheet sheet = HSSFTestHelper.GetSheetForTest(s); foreach (RecordBase rb in sheet.Records) { if (rb is Record) { Record r = (Record)rb; if (r is FeatRecord) { countFR++; } else if (r.Sid == FeatRecord.sid) { countFR++; } if (r is FeatHdrRecord) { countFRH++; } else if (r.Sid == FeatHdrRecord.sid) { countFRH++; } } } Assert.AreEqual(0, countFR); Assert.AreEqual(0, countFRH); }
public void TestReadFeatRecord() { HSSFWorkbook hssf = HSSFTestDataSamples.OpenSampleWorkbook("46136-NoWarnings.xls"); InternalWorkbook wb = HSSFTestHelper.GetWorkbookForTest(hssf); FeatRecord fr = null; FeatHdrRecord fhr = null; Assert.AreEqual(1, hssf.NumberOfSheets); // First check it isn't on the Workbook int countFR = 0; int countFRH = 0; foreach (Record r in wb.Records) { if (r is FeatRecord) { fr = (FeatRecord)r; countFR++; } else if (r.Sid == FeatRecord.sid) { Assert.Fail("FeatRecord SID found but not Created correctly!"); } if (r is FeatHdrRecord) { countFRH++; } else if (r.Sid == FeatHdrRecord.sid) { Assert.Fail("FeatHdrRecord SID found but not Created correctly!"); } } Assert.AreEqual(0, countFR); Assert.AreEqual(0, countFRH); // Now find it on our sheet HSSFSheet s = (HSSFSheet)hssf.GetSheetAt(0); InternalSheet sheet = HSSFTestHelper.GetSheetForTest(s); foreach (RecordBase rb in sheet.Records) { if (rb is Record) { Record r = (Record)rb; if (r is FeatRecord) { fr = (FeatRecord)r; countFR++; } else if (r.Sid == FeatRecord.sid) { countFR++; } if (r is FeatHdrRecord) { fhr = (FeatHdrRecord)r; countFRH++; } else if (r.Sid == FeatHdrRecord.sid) { countFRH++; } } } Assert.AreEqual(1, countFR); Assert.AreEqual(1, countFRH); Assert.IsNotNull(fr); Assert.IsNotNull(fhr); // Now check the contents are as expected Assert.AreEqual( FeatHdrRecord.SHAREDFEATURES_ISFFEC2, fr.Isf_sharedFeatureType ); // Applies to one cell only Assert.AreEqual(1, fr.CellRefs.Length); Assert.AreEqual(0, fr.CellRefs[0].FirstRow); Assert.AreEqual(0, fr.CellRefs[0].LastRow); Assert.AreEqual(0, fr.CellRefs[0].FirstColumn); Assert.AreEqual(0, fr.CellRefs[0].LastColumn); // More Checking of shared features stuff Assert.AreEqual(4, fr.CbFeatData); Assert.AreEqual(4, fr.SharedFeature.DataSize); Assert.AreEqual(typeof(FeatFormulaErr2), fr.SharedFeature.GetType()); FeatFormulaErr2 fferr2 = (FeatFormulaErr2)fr.SharedFeature; Assert.AreEqual(0x04, fferr2.RawErrorCheckValue); Assert.IsFalse(fferr2.CheckCalculationErrors); Assert.IsFalse(fferr2.CheckDateTimeFormats); Assert.IsFalse(fferr2.CheckEmptyCellRef); Assert.IsFalse(fferr2.CheckInconsistentFormulas); Assert.IsFalse(fferr2.CheckInconsistentRanges); Assert.IsTrue(fferr2.CheckNumbersAsText); Assert.IsFalse(fferr2.CheckUnprotectedFormulas); Assert.IsFalse(fferr2.PerformDataValidation); }