Converts OpenXML Spreadsheets files to DataTable objects and vice versa.
- WindowsBase.dll
- DocumentFormat.OpenXml.dll
var dataTable = new DataTable();
var spreadsheetMLParser = new DataTablesSML.SpreadsheetMLParser();
//Returns the generated file's path.
string filePath = spreadsheetMLParser.ExportSpreadsheet(dataTable, @"C:\Temp");
string filePath = spreadsheetMLParser.ExportSpreadsheet(dataTable, @"C:\Temp", "mySheet");
string filePath = spreadsheetMLParser.ExportSpreadsheet(dataTable, @"C:\Temp", null, "Sheet 01");
string filePath = spreadsheetMLParser.ExportSpreadsheet(dataTable, @"C:\Temp", "MySheetFile", "Sheet 01");
Useful when working with ASP.NET
string filename = string.Format("{0:yyyyMMddhhmmss}.xlsx");
Response.Clear();
Response.Buffer = true;
Response.AddHeader("content-disposition", $"attachment;filename={filename}");
Response.ContentEncoding = Encoding.GetEncoding("Windows-1252");
Response.Charset = "UTF-8";
Response.ContentType = "application/vnd.ms-excel";
MemoryStream stream = new MemoryStream();
var spreadsheetMLParser = new DataTablesSML.SpreadsheetMLParser();
spreadsheetMLParser.ExportSpreadsheet(dtCsv, ref stream, "Sheet1");
stream.WriteTo(Response.OutputStream);
stream.Dispose();
Response.Flush();
Response.End();
//<asp:FileUpload ID="fileUploadControl" ... />
Stream fileStream = new MemoryStream(fileUploadControl.FileBytes);
//true parameter indicates if spreadsheet has headers at first row
DataTable xlsDataTable = new DataTablesSML.SpreadsheetMLParser().ImportSpreadsheet(fileStream, true);