前言
在C#中DataTable匯出資料的時候,我們需要HTML格式的輸出資料, 這時候就需要使用將DataTable匯出為到HTML格式的方法了,以下代碼就可以協助我們達到目的。
首先,我們要綁定DataTable和 DataGridView。
一、通過DataTable綁定DataGridView
1. 建立DataTable,添加列
DataTable table = new DataTable();table.Columns.Add("ID", typeof(int));table.Columns.Add("NAME", typeof(string));table.Columns.Add("CITY", typeof(string));
2. 再添加行
table.Rows.Add(111, "Devesh", "Ghaziabad");table.Rows.Add(222, "ROLI", "KANPUR");table.Rows.Add(102, "ROLI", "MAINPURI");table.Rows.Add(212, "DEVESH", "KANPUR");
3. 綁定DataGridView
dataGridView1.DataSource=table;
4. 運行結果
二、將DataTable 匯出為 HTML
我寫了一組代碼來為每個DataTable建立HTML文本。你可以在你的項目中直接引用。
代碼如下:
protected string ExportDatatableToHtml(DataTable dt){StringBuilder strHTMLBuilder = new StringBuilder();strHTMLBuilder.Append("<html >");strHTMLBuilder.Append("<head>");strHTMLBuilder.Append("</head>");strHTMLBuilder.Append("<body>");strHTMLBuilder.Append("<table border='1px' cellpadding='1' cellspacing='1' bgcolor='lightyellow' style='font-family:Garamond; font-size:smaller'>"); strHTMLBuilder.Append("<tr >");foreach (DataColumn myColumn in dt.Columns){strHTMLBuilder.Append("<td >");strHTMLBuilder.Append(myColumn.ColumnName);strHTMLBuilder.Append("</td>"); }strHTMLBuilder.Append("</tr>"); foreach (DataRow myRow in dt.Rows){ strHTMLBuilder.Append("<tr >");foreach (DataColumn myColumn in dt.Columns){strHTMLBuilder.Append("<td >");strHTMLBuilder.Append(myRow[myColumn.ColumnName].ToString());strHTMLBuilder.Append("</td>"); }strHTMLBuilder.Append("</tr>");} //Close tags.strHTMLBuilder.Append("</table>");strHTMLBuilder.Append("</body>");strHTMLBuilder.Append("</html>"); string Htmltext = strHTMLBuilder.ToString(); return Htmltext; }
三、代碼理解
我們建立了一個函數,使用DataTable作為參數。
然後用stringbuilder類建立動態HTML文本。
輸出結果與DataGridView中的行和列數量相同。
在HTML中建立列。
foreach (DataColumn myColumn in dt.Columns){strHTMLBuilder.Append("<td >");strHTMLBuilder.Append(myColumn.ColumnName);strHTMLBuilder.Append("</td>"); }
複製資料,以下代碼就會在DataTable中建立相同數量的行,並將資料複製到HTML行中。
foreach (DataRow myRow in dt.Rows){ strHTMLBuilder.Append("<tr >");foreach (DataColumn myColumn in dt.Columns){strHTMLBuilder.Append("<td >");strHTMLBuilder.Append(myRow[myColumn.ColumnName].ToString());strHTMLBuilder.Append("</td>"); }strHTMLBuilder.Append("</tr>");}
四、執行上面的代碼後得到如下HTML文本
<html ><head></head><body><table border='1px' cellpadding='1' cellspacing='1' bgcolor='lightyellow' style='font-family:Garamond; font-size:smaller'><tr ><td >ID</td><td >NAME</td><td >CITY</td></tr><tr ><td >111</td><td >Devesh</td><td >Ghaziabad</td></tr><tr ><td >222</td><td >ROLI</td><td >KANPUR</td></tr><tr ><td >102</td><td >ROLI</td><td >MAINPURI</td></tr><tr ><td >212</td><td >DEVESH</td><td >KANPUR</td></tr></table></body></html>
五、建立HTML檔案
string HtmlBody = ExportDatatableToHtml(table)System.IO.File.WriteAllText(@"c:\abc.HTML", HtmlBody);
六、運行結果
總結
以上就是關於C#中將DataTable匯出為HTML格式的全部內容了,希望本文的內容對大家的學習或者工作能帶來一定的協助,如果有疑問大家可以留言交流。