Example #1
0
        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]);
        }
Example #2
0
        internal ExcelSheet(WorksheetPart sheetPart, ExcelStylesheetProvider styles)
        {
            _sheet     = sheetPart.Worksheet;
            _sheetData = sheetPart.Worksheet.GetFirstChild <SheetData>();
            _styles    = styles;

            //set default columns' widths
            ApplyColumnWidths(20);
        }