Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    primarykey
    data
    text
    <p>Look into the OpenXML SDK: I understand that my example doesn't convert .csv files, but it will steer you in the right direction. <a href="http://msdn.microsoft.com/en-us/library/bb448854(office.14).aspx" rel="nofollow">http://msdn.microsoft.com/en-us/library/bb448854(office.14).aspx</a></p> <p>I've used it in asp.net to create xlsx documents on the fly, streamed directly to the web client:</p> <pre><code>public static System.IO.MemoryStream ConvertToExcel(DataSet ds) { System.IO.MemoryStream stream = new System.IO.MemoryStream(); using (SpreadsheetDocument package = SpreadsheetDocument.Create(stream, SpreadsheetDocumentType.Workbook, true)) { package.AddWorkbookPart(); package.WorkbookPart.Workbook = new Workbook(); package.WorkbookPart.AddNewPart&lt;WorksheetPart&gt;(); if (ds.Tables.Count &gt; 0 &amp;&amp; ds.Tables[0].Rows.Count &gt; 0) { DataTable tbl = ds.Tables[0]; SheetData xlSheetData = new SheetData(); foreach (DataRow row in tbl.Rows) { Row xlRow = new Row(); foreach (DataColumn col in tbl.Columns) { object cellData = row[col]; Cell xlCell = null; if (cellData != null) { xlCell = new Cell(new InlineString(new DocumentFormat.OpenXml.Spreadsheet.Text(cellData.ToString()))) { DataType = CellValues.InlineString }; } else { xlCell = new Cell(new InlineString(new DocumentFormat.OpenXml.Spreadsheet.Text(String.Empty))) { DataType = CellValues.InlineString }; } xlRow.Append(xlCell); } xlSheetData.Append(xlRow); } package.WorkbookPart.WorksheetParts.First().Worksheet = new Worksheet(xlSheetData); package.WorkbookPart.WorksheetParts.First().Worksheet.Save(); // create the worksheet to workbook relation package.WorkbookPart.Workbook.AppendChild(new Sheets()); package.WorkbookPart.Workbook.GetFirstChild&lt;Sheets&gt;().AppendChild(new Sheet() { Id = package.WorkbookPart.GetIdOfPart(package.WorkbookPart.WorksheetParts.First()), SheetId = 1, Name = "Sheet1" }); package.WorkbookPart.Workbook.Save(); } } return stream; } </code></pre>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. VO
      singulars
      1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload