public void TestReadTextBox() { XSSFWorkbook wb = XSSFTestDataSamples.OpenSampleWorkbook("WithDrawing.xlsx"); XSSFSheet sheet = wb.GetSheetAt(0) as XSSFSheet; //the sheet has one relationship and it is XSSFDrawing List <RelationPart> rels = sheet.RelationParts; Assert.AreEqual(1, rels.Count); RelationPart rp = rels[0]; Assert.IsTrue(rp.DocumentPart is XSSFDrawing); XSSFDrawing drawing = (XSSFDrawing)rp.DocumentPart; //sheet.CreateDrawingPatriarch() should return the same instance of XSSFDrawing Assert.AreSame(drawing, sheet.CreateDrawingPatriarch()); String drawingId = rp.Relationship.Id; //there should be a relation to this Drawing in the worksheet Assert.IsTrue(sheet.GetCTWorksheet().IsSetDrawing()); Assert.AreEqual(drawingId, sheet.GetCTWorksheet().drawing.id); List <XSSFShape> shapes = drawing.GetShapes(); Assert.AreEqual(6, shapes.Count); Assert.IsTrue(shapes[0] is XSSFSimpleShape); XSSFSimpleShape textbox = (XSSFSimpleShape)shapes[0]; Assert.AreEqual("Sheet with various pictures\n(jpeg, png, wmf, emf and pict)", textbox.Text); checkRewrite(wb); wb.Close(); }
public void TestAddMultipleParagraphs() { XSSFWorkbook wb = new XSSFWorkbook(); XSSFSheet sheet = wb.CreateSheet() as XSSFSheet; XSSFDrawing Drawing = sheet.CreateDrawingPatriarch() as XSSFDrawing;; XSSFTextBox shape = Drawing.CreateTextbox(new XSSFClientAnchor(0, 0, 0, 0, 2, 2, 3, 4)); XSSFTextParagraph para = shape.AddNewTextParagraph(); para.AddNewTextRun().Text = ("Line 1"); para = shape.AddNewTextParagraph(); para.AddNewTextRun().Text = ("Line 2"); para = shape.AddNewTextParagraph(); para.AddNewTextRun().Text = ("Line 3"); List <XSSFTextParagraph> paras = shape.TextParagraphs; Assert.AreEqual(4, paras.Count); // this should be 4 as XSSFSimpleShape Creates a default paragraph (no text), and then we Added 3 paragraphs Assert.AreEqual("Line 1\nLine 2\nLine 3", shape.Text); checkRewrite(wb); wb.Close(); }
public void Test53568() { XSSFWorkbook wb = XSSFTestDataSamples.OpenSampleWorkbook("53568.xlsx"); List <XSSFPictureData> pictures = wb.GetAllPictures() as List <XSSFPictureData>; Assert.IsNotNull(pictures); Assert.AreEqual(4, pictures.Count); XSSFSheet sheet1 = wb.GetSheetAt(0) as XSSFSheet; List <XSSFShape> shapes1 = (sheet1.CreateDrawingPatriarch() as XSSFDrawing).GetShapes(); Assert.IsNotNull(shapes1); Assert.AreEqual(5, shapes1.Count); for (int i = 0; i < wb.NumberOfSheets; i++) { XSSFSheet sheet = wb.GetSheetAt(i) as XSSFSheet; XSSFDrawing Drawing = sheet.CreateDrawingPatriarch() as XSSFDrawing; foreach (XSSFShape shape in Drawing.GetShapes()) { if (shape is XSSFPicture) { XSSFPicture pic = (XSSFPicture)shape; XSSFPictureData picData = pic.PictureData as XSSFPictureData; Assert.IsNotNull(picData); } } } }
public void TestRichTextFontAndColor() { XSSFWorkbook wb = new XSSFWorkbook(); XSSFSheet sheet = wb.CreateSheet() as XSSFSheet; XSSFDrawing Drawing = sheet.CreateDrawingPatriarch() as XSSFDrawing; XSSFTextBox shape = Drawing.CreateTextbox(new XSSFClientAnchor(0, 0, 0, 0, 2, 2, 3, 4)) as XSSFTextBox; XSSFRichTextString rt = new XSSFRichTextString("Test String"); XSSFFont font = wb.CreateFont() as XSSFFont; font.SetColor(new XSSFColor(Color.FromArgb(0, 128, 128))); font.FontName = ("Arial"); rt.ApplyFont(font); shape.SetText(rt); CT_TextParagraph pr = shape.GetCTShape().txBody.GetPArray(0); Assert.AreEqual(1, pr.SizeOfRArray()); CT_TextCharacterProperties rPr = pr.GetRArray(0).rPr; Assert.AreEqual("Arial", rPr.latin.typeface); Assert.IsTrue(Arrays.Equals( new byte[] { 0, (byte)128, (byte)128 }, rPr.solidFill.srgbClr.val)); checkRewrite(wb); wb.Close(); }
public void TestSetAddMultipleParagraphs() { XSSFWorkbook wb = new XSSFWorkbook(); XSSFSheet sheet = wb.CreateSheet() as XSSFSheet; XSSFDrawing Drawing = sheet.CreateDrawingPatriarch() as XSSFDrawing;; XSSFTextBox shape = Drawing.CreateTextbox(new XSSFClientAnchor(0, 0, 0, 0, 2, 2, 3, 4)); shape.SetText("Line 1"); XSSFTextParagraph para = shape.AddNewTextParagraph(); para.AddNewTextRun().Text = ("Line 2"); para = shape.AddNewTextParagraph(); para.AddNewTextRun().Text = ("Line 3"); List <XSSFTextParagraph> paras = shape.TextParagraphs; Assert.AreEqual(3, paras.Count); // this should be 3 as we overwrote the default paragraph with SetText, then Added 2 new paragraphs Assert.AreEqual("Line 1\nLine 2\nLine 3", shape.Text); checkRewrite(wb); wb.Close(); }
public void TestNew() { XSSFWorkbook wb = new XSSFWorkbook(); XSSFSheet sheet = (XSSFSheet)wb.CreateSheet(); XSSFDrawing Drawing = (XSSFDrawing)sheet.CreateDrawingPatriarch(); byte[] jpegData = Encoding.UTF8.GetBytes("test jpeg data"); byte[] wmfData = Encoding.UTF8.GetBytes("test wmf data"); byte[] pngData = Encoding.UTF8.GetBytes("test png data"); IList pictures = wb.GetAllPictures(); Assert.AreEqual(0, pictures.Count); int jpegIdx = wb.AddPicture(jpegData, PictureType.JPEG); Assert.AreEqual(1, pictures.Count); Assert.AreEqual("jpeg", ((XSSFPictureData)pictures[jpegIdx]).SuggestFileExtension()); Assert.IsTrue(Arrays.Equals(jpegData, ((XSSFPictureData)pictures[jpegIdx]).Data)); int wmfIdx = wb.AddPicture(wmfData, PictureType.WMF); Assert.AreEqual(2, pictures.Count); Assert.AreEqual("wmf", ((XSSFPictureData)pictures[wmfIdx]).SuggestFileExtension()); Assert.IsTrue(Arrays.Equals(wmfData, ((XSSFPictureData)pictures[wmfIdx]).Data)); int pngIdx = wb.AddPicture(pngData, PictureType.PNG); Assert.AreEqual(3, pictures.Count); Assert.AreEqual("png", ((XSSFPictureData)pictures[pngIdx]).SuggestFileExtension()); Assert.IsTrue(Arrays.Equals(pngData, ((XSSFPictureData)pictures[pngIdx]).Data)); //TODO finish usermodel API for XSSFPicture XSSFPicture p1 = (XSSFPicture)Drawing.CreatePicture(new XSSFClientAnchor(), jpegIdx); Assert.IsNotNull(p1); XSSFPicture p2 = (XSSFPicture)Drawing.CreatePicture(new XSSFClientAnchor(), wmfIdx); Assert.IsNotNull(p1); XSSFPicture p3 = (XSSFPicture)Drawing.CreatePicture(new XSSFClientAnchor(), pngIdx); Assert.IsNotNull(p1); //check that the Added pictures are accessible After write wb = (XSSFWorkbook)XSSFTestDataSamples.WriteOutAndReadBack(wb); IList pictures2 = wb.GetAllPictures(); Assert.AreEqual(3, pictures2.Count); Assert.AreEqual("jpeg", ((XSSFPictureData)pictures2[jpegIdx]).SuggestFileExtension()); Assert.IsTrue(Arrays.Equals(jpegData, ((XSSFPictureData)pictures2[jpegIdx]).Data)); Assert.AreEqual("wmf", ((XSSFPictureData)pictures2[wmfIdx]).SuggestFileExtension()); Assert.IsTrue(Arrays.Equals(wmfData, ((XSSFPictureData)pictures2[wmfIdx]).Data)); Assert.AreEqual("png", ((XSSFPictureData)pictures2[pngIdx]).SuggestFileExtension()); Assert.IsTrue(Arrays.Equals(pngData, ((XSSFPictureData)pictures2[pngIdx]).Data)); }
public void Resize() { XSSFWorkbook wb = XSSFITestDataProvider.instance.OpenSampleWorkbook("resize_Compare.xlsx") as XSSFWorkbook; XSSFDrawing dp = wb.GetSheetAt(0).CreateDrawingPatriarch() as XSSFDrawing; List <XSSFShape> pics = dp.GetShapes(); XSSFPicture inpPic = (XSSFPicture)pics[(0)]; XSSFPicture cmpPic = (XSSFPicture)pics[(0)]; BaseTestResize(inpPic, cmpPic, 2.0, 2.0); wb.Close(); }
public void TestGetChartAxisBug57362() { //Load existing excel with some chart on it having primary and secondary axis. IWorkbook workbook = XSSFTestDataSamples.OpenSampleWorkbook("57362.xlsx"); ISheet sh = workbook.GetSheetAt(0); XSSFSheet xsh = (XSSFSheet)sh; XSSFDrawing Drawing = xsh.CreateDrawingPatriarch() as XSSFDrawing; XSSFChart chart = Drawing.GetCharts()[(0)]; List <IChartAxis> axisList = chart.GetAxis(); Assert.AreEqual(4, axisList.Count); Assert.IsNotNull(axisList[(0)]); Assert.IsNotNull(axisList[(1)]); Assert.IsNotNull(axisList[(2)]); Assert.IsNotNull(axisList[(3)]); }
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); }
public void TestRead() { XSSFWorkbook wb = XSSFTestDataSamples.OpenSampleWorkbook("WithDrawing.xlsx"); XSSFSheet sheet = (XSSFSheet)wb.GetSheetAt(0); //the sheet has one relationship and it is XSSFDrawing List <RelationPart> rels = sheet.RelationParts; Assert.AreEqual(1, rels.Count); RelationPart rp = rels[0]; Assert.IsTrue(rp.DocumentPart is XSSFDrawing); XSSFDrawing drawing = (XSSFDrawing)rp.DocumentPart; //sheet.CreateDrawingPatriarch() should return the same instance of XSSFDrawing Assert.AreSame(drawing, sheet.CreateDrawingPatriarch()); String drawingId = rp.Relationship.Id; //there should be a relation to this Drawing in the worksheet Assert.IsTrue(sheet.GetCTWorksheet().IsSetDrawing()); Assert.AreEqual(drawingId, sheet.GetCTWorksheet().drawing.id); List <XSSFShape> shapes = drawing.GetShapes(); Assert.AreEqual(6, shapes.Count); Assert.IsTrue(shapes[(0)] is XSSFPicture); Assert.IsTrue(shapes[(1)] is XSSFPicture); Assert.IsTrue(shapes[(2)] is XSSFPicture); Assert.IsTrue(shapes[(3)] is XSSFPicture); Assert.IsTrue(shapes[(4)] is XSSFSimpleShape); Assert.IsTrue(shapes[(5)] is XSSFPicture); foreach (XSSFShape sh in shapes) { Assert.IsNotNull(sh.GetAnchor()); } checkRewrite(wb); wb.Close(); }
public void TestRead() { XSSFWorkbook wb = XSSFTestDataSamples.OpenSampleWorkbook("WithDrawing.xlsx"); XSSFSheet sheet = (XSSFSheet)wb.GetSheetAt(0); //the sheet has one relationship and it is XSSFDrawing List <POIXMLDocumentPart> rels = sheet.GetRelations(); Assert.AreEqual(1, rels.Count); Assert.IsTrue(rels[0] is XSSFDrawing); XSSFDrawing drawing = (XSSFDrawing)rels[0]; //sheet.CreateDrawingPatriarch() should return the same instance of XSSFDrawing Assert.AreSame(drawing, sheet.CreateDrawingPatriarch()); 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); }
public void TestClone() { XSSFWorkbook wb = XSSFTestDataSamples.OpenSampleWorkbook("WithDrawing.xlsx"); XSSFSheet sheet1 = wb.GetSheetAt(0) as XSSFSheet; XSSFSheet sheet2 = wb.CloneSheet(0) as XSSFSheet; //the source sheet has one relationship and it is XSSFDrawing List <POIXMLDocumentPart> rels1 = sheet1.GetRelations(); Assert.AreEqual(1, rels1.Count); Assert.IsTrue(rels1[(0)] is XSSFDrawing); List <POIXMLDocumentPart> rels2 = sheet2.GetRelations(); Assert.AreEqual(1, rels2.Count); Assert.IsTrue(rels2[(0)] is XSSFDrawing); XSSFDrawing drawing1 = (XSSFDrawing)rels1[0]; XSSFDrawing drawing2 = (XSSFDrawing)rels2[0]; Assert.AreNotSame(drawing1, drawing2); // Drawing2 is a clone of Drawing1 List <XSSFShape> shapes1 = drawing1.GetShapes(); List <XSSFShape> shapes2 = drawing2.GetShapes(); Assert.AreEqual(shapes1.Count, shapes2.Count); for (int i = 0; i < shapes1.Count; i++) { XSSFShape sh1 = (XSSFShape)shapes1[(i)]; XSSFShape sh2 = (XSSFShape)shapes2[i]; Assert.IsTrue(sh1.GetType() == sh2.GetType()); Assert.AreEqual(sh1.GetShapeProperties().ToString(), sh2.GetShapeProperties().ToString()); } checkRewrite(wb); wb.Close(); }
public void Bug47668() { XSSFWorkbook workbook = XSSFTestDataSamples.OpenSampleWorkbook("47668.xlsx"); IList allPictures = workbook.GetAllPictures(); Assert.AreEqual(1, allPictures.Count); PackagePartName imagePartName = PackagingUriHelper .CreatePartName("/xl/media/image1.jpeg"); PackagePart imagePart = workbook.Package.GetPart(imagePartName); Assert.IsNotNull(imagePart); foreach (XSSFPictureData pictureData in allPictures) { PackagePart picturePart = pictureData.GetPackagePart(); Assert.AreSame(imagePart, picturePart); } XSSFSheet sheet0 = (XSSFSheet)workbook.GetSheetAt(0); XSSFDrawing Drawing0 = (XSSFDrawing)sheet0.CreateDrawingPatriarch(); XSSFPictureData pictureData0 = (XSSFPictureData)Drawing0.GetRelations()[0]; byte[] data0 = pictureData0.Data; CRC32 crc0 = new CRC32(); crc0.Update(data0); XSSFSheet sheet1 = workbook.GetSheetAt(1) as XSSFSheet; XSSFDrawing Drawing1 = sheet1.CreateDrawingPatriarch() as XSSFDrawing; XSSFPictureData pictureData1 = (XSSFPictureData)Drawing1.GetRelations()[0]; byte[] data1 = pictureData1.Data; CRC32 crc1 = new CRC32(); crc1.Update(data1); Assert.AreEqual(crc0.Value, crc1.Value); workbook.Close(); }
public void TestMultipleDrawings() { XSSFWorkbook wb = new XSSFWorkbook(); for (int i = 0; i < 3; i++) { XSSFSheet sheet = (XSSFSheet)wb.CreateSheet(); XSSFDrawing drawing = (XSSFDrawing)sheet.CreateDrawingPatriarch(); Assert.IsNotNull(drawing); } OPCPackage pkg = wb.Package; try { Assert.AreEqual(3, pkg.GetPartsByContentType(XSSFRelation.DRAWINGS.ContentType).Count); checkRewrite(wb); } finally { pkg.Close(); } wb.Close(); }
public void TestSetTextSingleParagraph() { XSSFWorkbook wb = new XSSFWorkbook(); XSSFSheet sheet = wb.CreateSheet() as XSSFSheet; XSSFDrawing Drawing = sheet.CreateDrawingPatriarch() as XSSFDrawing; XSSFTextBox shape = Drawing.CreateTextbox(new XSSFClientAnchor(0, 0, 0, 0, 2, 2, 3, 4)); XSSFRichTextString rt = new XSSFRichTextString("Test String"); XSSFFont font = wb.CreateFont() as XSSFFont; font.SetColor(new XSSFColor(Color.FromArgb(0, 255, 255))); font.FontName = ("Arial"); rt.ApplyFont(font); shape.SetText(rt); List <XSSFTextParagraph> paras = shape.TextParagraphs; Assert.AreEqual(1, paras.Count); Assert.AreEqual("Test String", paras[0].Text); List <XSSFTextRun> runs = paras[0].TextRuns; Assert.AreEqual(1, runs.Count); Assert.AreEqual("Arial", runs[0].FontFamily); Color clr = runs[0].FontColor; Assert.IsTrue(Arrays.Equals( new int[] { 0, 255, 255 }, new int[] { clr.R, clr.G, clr.B })); checkRewrite(wb); wb.Close(); }
public void TestAddNewTextParagraph() { XSSFWorkbook wb = new XSSFWorkbook(); XSSFSheet sheet = wb.CreateSheet() as XSSFSheet; XSSFDrawing Drawing = sheet.CreateDrawingPatriarch() as XSSFDrawing; XSSFTextBox shape = Drawing.CreateTextbox(new XSSFClientAnchor(0, 0, 0, 0, 2, 2, 3, 4)); XSSFTextParagraph para = shape.AddNewTextParagraph(); para.AddNewTextRun().Text = ("Line 1"); List <XSSFTextParagraph> paras = shape.TextParagraphs; Assert.AreEqual(2, paras.Count); // this should be 2 as XSSFSimpleShape Creates a default paragraph (no text), and then we add a string to that. List <XSSFTextRun> runs = para.TextRuns; Assert.AreEqual(1, runs.Count); Assert.AreEqual("Line 1", runs[0].Text); checkRewrite(wb); wb.Close(); }
/** * Construct a new XSSFGraphicFrame object. * * @param Drawing the XSSFDrawing that owns this frame * @param ctGraphicFrame the XML bean that stores this frame content */ public XSSFGraphicFrame(XSSFDrawing Drawing, CT_GraphicalObjectFrame ctGraphicFrame) { this.drawing = Drawing; this.graphicFrame = ctGraphicFrame; }
internal XSSFTextBox(XSSFDrawing drawing, CT_Shape ctShape) : base(drawing, ctShape) { }
/** * Construct a new XSSFConnector object. * * @param Drawing the XSSFDrawing that owns this shape * @param ctShape the shape bean that holds all the shape properties */ public XSSFConnector(XSSFDrawing drawing, CT_Connector ctShape) { this.drawing = drawing; this.ctShape = ctShape; }
/** * Returns a prototype that is used to construct new shapes * * @return a prototype that is used to construct new shapes */ public XSSFPicture(XSSFDrawing drawing, XmlNode ctPicture) { this.drawing = drawing; this.ctPicture =CT_Picture.Parse(ctPicture, POIXMLDocumentPart.NamespaceManager); }
/** * Construct a new XSSFPicture object. This constructor is called from * {@link XSSFDrawing#CreatePicture(XSSFClientAnchor, int)} * * @param Drawing the XSSFDrawing that owns this picture */ public XSSFPicture(XSSFDrawing drawing, CT_Picture ctPicture) { this.drawing = drawing; this.ctPicture = ctPicture; }
public XSSFSimpleShape(XSSFDrawing drawing, XmlNode spNode) { this.drawing = drawing; this.ctShape = CT_Shape.Parse(spNode, null); }
public XSSFSimpleShape(XSSFDrawing drawing, CT_Shape ctShape) { this.drawing = drawing; this.ctShape = ctShape; }
/** * Construct a new XSSFSimpleShape object. * * @param Drawing the XSSFDrawing that owns this shape * @param ctGroup the XML bean that stores this group content */ public XSSFShapeGroup(XSSFDrawing drawing, CT_GroupShape ctGroup) { this.drawing = drawing; this.ctGroup = ctGroup; }
/** * Get VML drawing for this sheet (aka 'legacy' drawig) * * @param autoCreate if true, then a new VML drawing part is Created * * @return the VML drawing of <code>null</code> if the drawing was not found and autoCreate=false */ internal XSSFVMLDrawing GetVMLDrawing(bool autoCreate) { XSSFVMLDrawing drawing = null; NPOI.OpenXmlFormats.Spreadsheet.CT_LegacyDrawing ctDrawing = GetCTLegacyDrawing(); if (ctDrawing == null) { if (autoCreate) { //drawingNumber = #drawings.Count + 1 int drawingNumber = GetPackagePart().Package.GetPartsByContentType(XSSFRelation.VML_DRAWINGS.ContentType).Count + 1; drawing = (XSSFVMLDrawing)CreateRelationship(XSSFRelation.VML_DRAWINGS, XSSFFactory.GetInstance(), drawingNumber); String relId = drawing.GetPackageRelationship().Id; //add CT_LegacyDrawing element which indicates that this sheet Contains drawing components built on the drawingML platform. //The relationship Id references the part Containing the drawing defInitions. ctDrawing = worksheet.AddNewLegacyDrawing(); ctDrawing.id = relId; } } else { //search the referenced drawing in the list of the sheet's relations foreach (POIXMLDocumentPart p in GetRelations()) { if (p is XSSFVMLDrawing) { XSSFVMLDrawing dr = (XSSFVMLDrawing)p; String drId = dr.GetPackageRelationship().Id; if (drId.Equals(ctDrawing.id)) { drawing = dr; break; } break; } } if (drawing == null) { logger.Log(POILogger.ERROR, "Can't find VML drawing with id=" + ctDrawing.id + " in the list of the sheet's relationships"); } } return drawing; }
internal XSSFCheckBox(XSSFDrawing drawing, CT_Shape ctShape, NPOI.OpenXmlFormats.Vml.CT_Shape vmlShape, XSSFCtrlProp ctrlProp) : base(drawing, ctShape) { _vmlShape = vmlShape; _ctrlProp = ctrlProp; }