C#中将DataTable导出为HTML的方法
今天我要向大家分享一种将DataTable导出为到HTML格式的方法.有时我们需要HTML格式的输出数据, 以下代码就可以帮助我们达到目的,。
首先,我们要绑定DataTable和 DataGridView。
A. 通过DataTable绑定DataGridView
1. 创建DataTable,添加列
1 2 3 4 | DataTable table = new DataTable(); table.Columns.Add( "ID" , typeof ( int )); table.Columns.Add( "NAME" , typeof ( string )); table.Columns.Add( "CITY" , typeof ( string )); |
2. 再添加行
1 2 3 4 | 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
1 | dataGridView1.DataSource=table; |
4. 运行结果
B. 将DataTable 导出为 HTML
我写了一组代码来为每个DataTable创建HTML文本。你可以在你的项目中直接引用。
代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 | 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; } |
C. 代码理解
- 我们创建了一个函数,使用DataTable作为参数。
- 然后用stringbuilder类创建动态的HTML文本。
- 输出结果与DataGridView中的行和列数量相同。
- 在HTML中创建列。
1 2 3 4 5 6 7 | foreach (DataColumn myColumn in dt.Columns) { strHTMLBuilder.Append( "<td >" ); strHTMLBuilder.Append(myColumn.ColumnName); strHTMLBuilder.Append( "</td>" ); } |
- 复制数据,以下代码就会在DataTable中创建相同数量的行,并将数据复制到HTML行中。
1 2 3 4 5 6 7 8 9 10 11 12 13 | 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>" ); } |
D. 执行上面的代码后得到如下HTML文本
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | <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> |
E. 创建HTML文件
1 2 | string HtmlBody = ExportDatatableToHtml(table) System.IO.File.WriteAllText( @"c:\abc.HTML" , HtmlBody); |
F. 运行结果
分类:
.NET OFFICE
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· .NET Core 托管堆内存泄露/CPU异常的常见思路
· PostgreSQL 和 SQL Server 在统计信息维护中的关键差异
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· 上周热点回顾(2.17-2.23)
· 如何使用 Uni-app 实现视频聊天(源码,支持安卓、iOS)
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)