/// <summary> /// Write xlsx spreadsheet file of a list of T objects /// Maximum of 24 columns /// </summary> /// <typeparam name="T">Type of objects passed in</typeparam> /// <param name="fileName">Full path filename for the new spreadsheet</param> /// <param name="defs">A list of sheet definitions used to create the spreadsheet</param> public static void Create <T>( string fileName, IEnumerable <SheetDefinition <T> > defs) { // open a template workbook using (var myWorkbook = SpreadsheetDocument.Create(fileName, SpreadsheetDocumentType.Workbook)) { // create workbook part var workbookPart = myWorkbook.AddWorkbookPart(); // add stylesheet to workbook part var stylesPart = myWorkbook.WorkbookPart.AddNewPart <WorkbookStylesPart>(); Stylesheet styles = new CustomStylesheet(); styles.Save(stylesPart); // create workbook var workbook = new Workbook(); // add work sheets var sheets = new Sheets(); var list = defs.ToList(); for (var i = 0; i < list.Count(); i++) { sheets.AppendChild(CreateSheet(i + 1, list[i], workbookPart)); } workbook.AppendChild(sheets); // add workbook to workbook part myWorkbook.WorkbookPart.Workbook = workbook; myWorkbook.WorkbookPart.Workbook.Save(); myWorkbook.Close(); } }
/// <summary> /// Write xlsx spreadsheet file of a list of T objects /// Maximum of 24 columns /// </summary> /// <typeparam name="T">Type of objects passed in</typeparam> /// <param name="fileName">Full path filename for the new spreadsheet</param> /// <param name="def">A sheet definition used to create the spreadsheet</param> public static void Create <T>( string fileName, SheetDefinition <T> def) { // open a template workbook using (var myWorkbook = SpreadsheetDocument.Create(fileName, SpreadsheetDocumentType.Workbook)) { // create workbook part var workbookPart = myWorkbook.AddWorkbookPart(); // add stylesheet to workbook part var stylesPart = myWorkbook.WorkbookPart.AddNewPart <WorkbookStylesPart>(); Stylesheet styles = new CustomStylesheet(); styles.Save(stylesPart); // create workbook var workbook = new Workbook(); // add work sheet var sheets = new Sheets(); sheets.AppendChild(CreateSheet(1, def, workbookPart)); workbook.AppendChild(sheets); // add workbook to workbook part myWorkbook.WorkbookPart.Workbook = workbook; myWorkbook.WorkbookPart.Workbook.Save(); myWorkbook.Close(); } }