public ISheet CreateSheet(string sheetname) { if (sheetname == null) { throw new ArgumentException("sheetName must not be null"); } if (this.ContainsSheet(sheetname, this.sheets.Count)) { throw new ArgumentException("The workbook already contains a sheet of this name"); } if (sheetname.Length > 31) { sheetname = sheetname.Substring(0, 31); } WorkbookUtil.ValidateSheetName(sheetname); CT_Sheet ctSheet = this.AddSheet(sheetname); int idx = 1; foreach (XSSFSheet sheet in this.sheets) { idx = (int)Math.Max((long)(sheet.sheet.sheetId + 1U), (long)idx); } XSSFSheet relationship = (XSSFSheet)this.CreateRelationship((POIXMLRelation)XSSFRelation.WORKSHEET, (POIXMLFactory)XSSFFactory.GetInstance(), idx); relationship.sheet = ctSheet; ctSheet.id = relationship.GetPackageRelationship().Id; ctSheet.sheetId = (uint)idx; if (this.sheets.Count == 0) { relationship.IsSelected = true; } this.sheets.Add(relationship); return((ISheet)relationship); }
private CT_Sheet AddSheet(string sheetname) { CT_Sheet ctSheet = this.workbook.sheets.AddNewSheet(); ctSheet.name = sheetname; return(ctSheet); }
public XMLHyperlinkModel(string area, string href, string text, PartManager manager, CT_Sheet entry) { _link = new CT_Hyperlink(); _link._ref_Attr = area; _link.Location_Attr = href; _link.Display_Attr = text; _isInternal = !href.Contains("://"); _manager = manager; _worksheetEntry = entry; }
public XmlPart GetWorksheetXmlPart(CT_Sheet sheetentry) { foreach (Relationship workbookRelationship in GetWorkbookRelationships()) { if (workbookRelationship.RelationshipId == sheetentry.Id_Attr) { return((XmlPart)_relationshipTree.GetPartByLocation(workbookRelationship.RelatedPart)); } } throw new FatalException(); }
public XMLPictureShapesModel(PartManager manager, CT_Sheet sheetEntry, string drawingId) { _manager = manager; _parent = _manager.GetWorksheetXmlPart(sheetEntry); _pictures = new List <XMLPictureShapeModel>(); foreach (Relationship item in _manager.GetRelationshipsForSheet(sheetEntry, "http://schemas.openxmlformats.org/officeDocument/2006/relationships/drawing")) { if (item.RelationshipId == drawingId) { _drawingrel = item; _drawing = (WsDrPart)_manager.GetPartByLocation(item.RelatedPart).HydratedPart; _ = (Microsoft.ReportingServices.Rendering.ExcelOpenXmlRenderer.Parser.drawingml.x2006.spreadsheetDrawing.CT_Drawing)_drawing.Root; break; } } }
public void SetSheetOrder(string sheetname, int pos) { int sheetIndex = this.GetSheetIndex(sheetname); XSSFSheet sheet1 = this.sheets[sheetIndex]; this.sheets.RemoveAt(sheetIndex); this.sheets.Insert(pos, sheet1); CT_Sheets sheets = this.workbook.sheets; CT_Sheet sheet2 = sheets.GetSheetArray(sheetIndex).Copy(); this.workbook.sheets.RemoveSheet(sheetIndex); sheets.InsertNewSheet(pos).Set(sheet2); for (int index = 0; index < this.sheets.Count; ++index) { this.sheets[index].sheet = sheets.GetSheetArray(index); } }
public List <Relationship> GetRelationshipsForSheet(CT_Sheet sheetEntry, string relationshipType) { List <Relationship> list = new List <Relationship>(); foreach (Relationship workbookRelationship in GetWorkbookRelationships()) { if (!(workbookRelationship.RelationshipId == sheetEntry.Id_Attr)) { continue; } foreach (Relationship item in _relationshipTree.GetRelationshipsByPath(workbookRelationship.RelatedPart)) { if (item.RelationshipType == relationshipType) { list.Add(item); } } } return(list); }
public XMLStreamsheetModel(XMLWorkbookModel workbook, XMLWorksheetsModel sheets, PartManager manager, string name, ExcelGeneratorConstants.CreateTempStream createTempStream) { _workbookModel = workbook; _worksheetsModel = sheets; _manager = manager; _interface = new Streamsheet(this); Relationship relationship = _manager.AddStreamingPartToTree("application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml", "http://schemas.openxmlformats.org/officeDocument/2006/relationships/worksheet", "xl/worksheets/sheet{0}.xml", (XmlPart)_manager.GetPartByContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml")); List <CT_Sheet> sheet = ((CT_Workbook)_manager.Workbook.Root).Sheets.Sheet; _sheetentry = new CT_Sheet(); _sheetentry.Id_Attr = relationship.RelationshipId; _sheetentry.Name_Attr = name; _sheetentry.SheetId_Attr = sheets.NextId; sheet.Add(_sheetentry); _partName = relationship.RelatedPart; _headStream = createTempStream(string.Format(CultureInfo.InvariantCulture, "streamsheetHead{0}", _sheetentry.SheetId_Attr)); _tailStream = createTempStream(string.Format(CultureInfo.InvariantCulture, "streamsheetTail{0}", _sheetentry.SheetId_Attr)); _headWriter = new StreamsheetParser(new StreamWriter(_headStream), startAtPrelude: true); _tailWriter = new StreamsheetParser(new StreamWriter(_tailStream), startAtPrelude: false); _headWriter.WritePrelude(); }
public void SerializeWorksheetDocumentTest() { CT_Workbook worksheet = new CT_Workbook(); CT_Sheet sheet1 = new CT_Sheet(); sheet1.name = "Sheet1"; sheet1.sheetId = 1u; sheet1.id = "rId1"; worksheet.sheets.sheet.Add(sheet1); var bks = worksheet.AddNewBookViews(); var bk = bks.AddNewWorkbookView(); bk.xWindow = 360; bk.xWindowSpecified = true; bk.yWindow = 60; bk.yWindowSpecified = true; bk.windowWidth = 11295; bk.windowWidthSpecified = true; bk.windowHeight = 5580; bk.windowHeightSpecified = true; StringWriter stream = new StringWriter(); WorkbookDocument_Accessor.serializer.Serialize(stream, worksheet, WorkbookDocument_Accessor.namespaces); string expected = @"<?xml version=""1.0"" encoding=""utf-16""?> <workbook xmlns:r=""http://schemas.openxmlformats.org/officeDocument/2006/relationships"" xmlns=""http://schemas.openxmlformats.org/spreadsheetml/2006/main""> <bookViews> <workbookView xWindow=""360"" yWindow=""60"" windowWidth=""11295"" windowHeight=""5580"" /> </bookViews> <sheets> <sheet name=""Sheet1"" sheetId=""1"" r:id=""rId1"" /> </sheets> </workbook>"; Assert.AreEqual(expected, stream.ToString()); }
void WriteWorkbook() { rels.Add(new CT_Relationship { Type = Relationships.Workbook, Target = "xl/workbook.xml" }); OverrideContentType("/xl/workbook.xml", ContentTypes.Workbook); sharedStrings = new SharedStrings(); ClearStyles(); workbookRelationships = new Relationships(); int sheetIndex = 1; contentTypes.Add(new CT_Default { Extension = "xml", ContentType = ContentTypes.Xml }); contentTypes.Add(new CT_Default { Extension = "rels", ContentType = ContentTypes.Rels }); var sheets = new List <CT_Sheet>(); foreach (var sheet in workbook.Sheets) { var relativePath = String.Format("worksheets/sheet{0}.xml", sheetIndex); var sheetPath = "xl/" + relativePath; var rid = workbookRelationships.Add(new CT_Relationship { Target = relativePath, TargetMode = ST_TargetMode.Internal, Type = Relationships.Sheet }); OverrideContentType(sheetPath, ContentTypes.Sheet); var st = new CT_Sheet { id = rid, name = sheet.SheetName, sheetId = (uint)sheetIndex }; sheets.Add(st); WriteSheet(sheetPath, sheet); sheetIndex++; } var wb = new CT_Workbook() { sheets = sheets.ToArray(), bookViews = new[] { new CT_BookView() } }; var definedNames = new List <CT_DefinedName>(); foreach (var definedName in workbook.DefinedNames) { var dn = new CT_DefinedName { name = definedName.Name, Value = definedName.Value }; definedNames.Add(dn); } for (var i = 0; i < workbook.Sheets.Count; i++) { foreach (var definedName in workbook.DefinedNames) { var dn = new CT_DefinedName { name = definedName.Name, Value = definedName.Value, localSheetId = (uint)i, localSheetIdSpecified = true }; definedNames.Add(dn); } } if (definedNames.Count > 0) { wb.definedNames = definedNames.ToArray(); } WriteFile("xl/workbook.xml", wb, SpreadsheetNs(true)); if (sharedStrings.Count > 0) { WriteSharedStrings(); } if (!styles.Empty) { OverrideContentType("xl/styles.xml", ContentTypes.Styles); workbookRelationships.Add(new CT_Relationship { Target = "styles.xml", Type = Relationships.Styles }); WriteStyles("xl/styles.xml"); } WriteRelationsips("xl/_rels/workbook.xml.rels", workbookRelationships); }