public ExcelSheet AddSheet(string name) { if (_sheets.ContainsKey(name)) { throw new InvalidOperationException($"[{name}] sheet already exists."); } var worksheetPart = _spreadsheetDocument.WorkbookPart.AddNewPart <WorksheetPart>(); worksheetPart.Worksheet = new Worksheet(); worksheetPart.Worksheet.Append(new SheetData()); if (_spreadsheetDocument.WorkbookPart.Workbook.Sheets == null) { _spreadsheetDocument.WorkbookPart.Workbook.AppendChild(new Sheets()); } _spreadsheetDocument.WorkbookPart.Workbook.GetFirstChild <Sheets>().AppendChild(new Sheet { Id = _spreadsheetDocument.WorkbookPart.GetIdOfPart(worksheetPart), SheetId = (uint)_sheets.Keys.Count + 1, Name = name }); var styles = new ExcelStylesheetProvider(); if (_spreadsheetDocument.WorkbookPart.WorkbookStylesPart == null) { _spreadsheetDocument.WorkbookPart.AddNewPart <WorkbookStylesPart>(); _spreadsheetDocument.WorkbookPart.WorkbookStylesPart.Stylesheet = styles.Stylesheet; } _sheets[name] = new ExcelSheet(worksheetPart, styles); return(_sheets[name]); }
internal ExcelSheet(WorksheetPart sheetPart, ExcelStylesheetProvider styles) { _sheet = sheetPart.Worksheet; _sheetData = sheetPart.Worksheet.GetFirstChild <SheetData>(); _styles = styles; //set default columns' widths ApplyColumnWidths(20); }