public virtual void WriteExcelDocument <TObject>(string filePath, Dictionary <string, List <TObject> > lstObject) where TObject : class { if (File.Exists(filePath)) { File.Delete(filePath); } var document = SpreadsheetDocument.Create(filePath, SpreadsheetDocumentType.Workbook); var workbookpart = document.AddWorkbookPart(); workbookpart.Workbook = new Workbook(); var sheets = document.WorkbookPart.Workbook.AppendChild(new Sheets()); var headers = Activator.CreateInstance <TObject>().GetExcelHeaders(); UInt32 i = 1; foreach (var item in lstObject) { var worksheetPart = document.WorkbookPart.AddNewPart <WorksheetPart>(); var sheetData = new SheetData(); var sheetName = item.Key; worksheetPart.Worksheet = new Worksheet(sheetData); var data = new OpenXmlEntities.SLExcelData { Headers = headers.ToList(), SheetName = sheetName }; foreach (var itemRow in item.Value) { var row = ObjectParser.FillExcelObject(itemRow); data.DataRows.Add(row.ToList()); } #region Incluindo Sheet var sheet = new Sheet { Id = document.WorkbookPart .GetIdOfPart(worksheetPart), SheetId = i++, Name = sheetName }; workbookpart.Workbook.LastChild.AppendChild(sheet); #endregion this.InsertSheetData(document, sheetData, data); } document.Close(); }
public MemoryStream WriteExcelDocumentStream <TObject>(IEnumerable <TObject> lstObject, string sheetName, List <string> headers) where TObject : class { var data = new OpenXmlEntities.SLExcelData { Headers = headers.ToList(), SheetName = sheetName }; foreach (var item in lstObject) { var row = ObjectParser.FillExcelObject(item); data.DataRows.Add(row.ToList()); } return(OpenXmlWriter.GenerateExcelStream(data)); }
public void WriteExcelDocument <TObject>(IEnumerable <TObject> lstObject, string filePath, string sheetName) where TObject : class { var headers = Activator.CreateInstance <TObject>().GetExcelHeaders(); var data = new OpenXmlEntities.SLExcelData { Headers = headers.ToList(), SheetName = sheetName }; foreach (var item in lstObject) { var row = ObjectParser.FillExcelObject(item); data.DataRows.Add(row.ToList()); } OpenXmlWriter.GenerateExcel(data, filePath); }