public Spreadsheet.Sheet AddSheet(string sheetName) { uint maxSheetId = 1; DocumentFormat.OpenXml.Packaging.WorksheetPart wsPart = null; DocumentFormat.OpenXml.Spreadsheet.Sheets sheets = null; DocumentFormat.OpenXml.Spreadsheet.Sheet sheet = null; wsPart = this.workbookPart.AddNewPart <DocumentFormat.OpenXml.Packaging.WorksheetPart>(); wsPart.Worksheet = new DocumentFormat.OpenXml.Spreadsheet.Worksheet(new DocumentFormat.OpenXml.Spreadsheet.SheetData()); sheets = this.workbookPart.Workbook.GetFirstChild <DocumentFormat.OpenXml.Spreadsheet.Sheets>(); if (sheets.Elements <DocumentFormat.OpenXml.Spreadsheet.Sheet>().Count() > 0) { maxSheetId = sheets.Elements <DocumentFormat.OpenXml.Spreadsheet.Sheet>().Select(s => s.SheetId.Value).Max(); maxSheetId++; } sheet = new DocumentFormat.OpenXml.Spreadsheet.Sheet(); sheet.Id = this.workbookPart.GetIdOfPart(wsPart); sheet.SheetId = maxSheetId; sheet.Name = sheetName; //if (this.workbookPart.Workbook.Sheets == null) //{ // sheets = this.workbookPart.Workbook.AppendChild(new DocumentFormat.OpenXml.Spreadsheet.Sheets()); //} sheets.Append(sheet); Spreadsheet.Sheet newSheet = new Spreadsheet.Sheet(ref wsPart, ref sheet); this.sheetCollection.Add(newSheet); return(newSheet); }
private void InitializeWorksheets() { IEnumerable <DocumentFormat.OpenXml.Spreadsheet.Sheet> oXmlSheets = this.workbookPart.Workbook.Sheets.Elements <DocumentFormat.OpenXml.Spreadsheet.Sheet>(); IEnumerable <DocumentFormat.OpenXml.Packaging.WorksheetPart> wsParts = this.workbookPart.WorksheetParts; if (oXmlSheets.Count() > 0) { for (int i = 0; i < oXmlSheets.Count(); i++) { DocumentFormat.OpenXml.Spreadsheet.Sheet oXmlSheet = oXmlSheets.ElementAt(i); DocumentFormat.OpenXml.Packaging.WorksheetPart wsPart = this.workbookPart.GetPartById(oXmlSheet.Id) as DocumentFormat.OpenXml.Packaging.WorksheetPart; Spreadsheet.Sheet sheet = new Spreadsheet.Sheet(ref wsPart, ref oXmlSheet); this.sheetCollection.Add(sheet); } } }
public bool RemoveSheet(string sheetName) { bool pkgSheetRemoved = false; Spreadsheet.Sheet sheet = null; IEnumerable <DocumentFormat.OpenXml.Spreadsheet.Sheet> qSheets = null; DocumentFormat.OpenXml.Spreadsheet.Sheet oXmlSheet = null; DocumentFormat.OpenXml.Packaging.WorksheetPart wsPart = null; sheet = this.sheetCollection.Where <Sheet>(sht => sht.Name.HasValue && string.Equals(sht.Name.Value, sheetName)).First(); qSheets = this.workbookPart.Workbook.Sheets.Elements <DocumentFormat.OpenXml.Spreadsheet.Sheet>().Where(sht => sht.Name.HasValue && string.Equals(sht.Name.Value, sheetName)); if (qSheets.Count() >= 1) { oXmlSheet = qSheets.ElementAt(0); } wsPart = this.workbookPart.GetPartById(oXmlSheet.Id) as WorksheetPart; oXmlSheet.Remove(); this.workbookPart.DeletePart(wsPart); pkgSheetRemoved = true; return(this.sheetCollection.Remove(sheet) & pkgSheetRemoved); }