Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    text
    copied!<p>For data exporting to xls I use this code. It's written in Visual Basic, but I think it will work for you. Copy - Paste and after that just feed it a DataTable and it will work it's magic.</p> <pre><code>Public Shared Sub DataTableToExcelResponse(dt as DataTable, filename as String) HttpContext.Current.Response.Clear(); HttpContext.Current.Response.ContentType = "application/vnd.ms-excel" HttpContext.Current.Response.AppendHeader("Content-Disposition", "attachment; filename="+filename) HttpContext.Current.Response.Write(DataTableToExcel(dt)) HttpContext.Current.Response.End End Sub Public Shared Function DataTableToExcel(dt As DataTable) As String Dim responseWriter As new StringWriter() responseWriter.Write("&lt;html&gt;") responseWriter.Write("&lt;head&gt;&lt;meta http-equiv=""Content-Type"" content=""text/html"" charset=""UTF-8"" /&gt;&lt;/head&gt;") responseWriter.Write("&lt;style&gt;") responseWriter.Write("table.download{border-collapse:collapse;}") responseWriter.Write("table.tr{vertical-align:top;}") responseWriter.Write("table.th{text-align:left; font-weight:bold;}") responseWriter.Write("table.td{}") responseWriter.Write("&lt;/style&gt;") responseWriter.Write("&lt;body&gt;") responseWriter.Write("&lt;table class='download' border='1'&gt;") responseWriter.Write("&lt;tr&gt;") For Each dc As DataColumn In dt.Columns responseWriter.Write("&lt;th class='download'&gt;") responseWriter.Write(dc.ColumnName) responseWriter.Write("&lt;/th&gt;") Next responseWriter.Write("&lt;/tr&gt;") For Each dr As DataRow In dt.Rows responseWriter.Write("&lt;tr class='download'&gt;") For i As Integer=0 to dt.Columns.Count-1 Step 1 If dt.Columns(i).DataType.ToString()="System.String" Then responseWriter.Write("&lt;td class='download' style='mso-number-format:\@;'&gt;") responseWriter.Write(dr(i).ToString()) ElseIf dt.Columns(i).DataType.ToString()="System.DateTime" Then responseWriter.Write("&lt;td class='download' style='mso-number-format:""dd\/mm\/yyyy"";'&gt;") Try responseWriter.Write(CType(dr(i),DateTime).ToString("dd/MMM/yyyy")) Catch ex As Exception responseWriter.Write(dr(i).ToString()) End Try Else responseWriter.Write("&lt;td&gt;") responseWriter.Write(dr(i).ToString()) End If responseWriter.Write("&lt;/td&gt;") Next responseWriter.Write("&lt;/tr&gt;") Next responseWriter.Write("&lt;/table&gt;") responseWriter.Write("&lt;/body&gt;") responseWriter.Write("&lt;/html&gt;") Return responseWriter.ToString() End Function </code></pre>
 

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