C#中将DataTable导出为HTML的方法

简介: 今天我要向大家分享一种将DataTable导出为到HTML格式的方法.有时我们需要HTML格式的输出数据, 以下代码就可以帮助我们达到目的,。 首先,我们要绑定DataTable和 DataGridView。

今天我要向大家分享一种将DataTable导出为到HTML格式的方法.有时我们需要HTML格式的输出数据, 以下代码就可以帮助我们达到目的,。

首先,我们要绑定DataTable和 DataGridView。

A. 通过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. 运行结果

B. 将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;  
  
}  

 C. 代码理解

  • 我们创建了一个函数,使用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>");  
}  

 D. 执行上面的代码后得到如下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>  

 E. 创建HTML文件

string HtmlBody = ExportDatatableToHtml(table)  
System.IO.File.WriteAllText(@"c:\abc.HTML", HtmlBody);  

 F. 运行结果

目录
相关文章
|
8天前
|
开发框架 .NET 程序员
C# 去掉字符串最后一个字符的 4 种方法
在实际业务中,我们经常会遇到在循环中拼接字符串的场景,循环结束之后拼接得到的字符串的最后一个字符往往需要去掉,看看 C# 提供了哪4种方法可以高效去掉字符串的最后一个字符
|
8天前
|
SQL C# 数据库
EPPlus库的安装和使用 C# 中 Excel的导入和导出
本文介绍了如何使用EPPlus库在C#中实现Excel的导入和导出功能。首先,通过NuGet包管理器安装EPPlus库,然后提供了将DataGridView数据导出到Excel的步骤和代码示例,包括将DataGridView转换为DataTable和使用EPPlus将DataTable导出为Excel文件。接着,介绍了如何将Excel数据导入到数据库中,包括读取Excel文件、解析数据、执行SQL插入操作。
EPPlus库的安装和使用 C# 中 Excel的导入和导出
|
9天前
|
前端开发
Twaver-HTML5基础学习(37)network导出图片并下载
本文介绍了如何在Twaver-HTML5中将network导出为图片并提供下载,主要通过将network转换为canvas对象,然后转换为base64编码的图片进行展示和下载。
26 5
|
26天前
|
C#
C#一分钟浅谈:Lambda 表达式和匿名方法
本文详细介绍了C#编程中的Lambda表达式与匿名方法,两者均可用于定义无名函数,使代码更简洁易维护。文章通过基础概念讲解和示例对比,展示了各自语法特点,如Lambda表达式的`(parameters) =&gt; expression`形式及匿名方法的`delegate(parameters)`结构。并通过实例演示了两者的应用差异,强调了在使用Lambda时应注意闭包问题及其解决策略,推荐优先使用Lambda表达式以增强代码可读性。
26 8
|
2月前
|
图形学 C# 开发者
全面掌握Unity游戏开发核心技术:C#脚本编程从入门到精通——详解生命周期方法、事件处理与面向对象设计,助你打造高效稳定的互动娱乐体验
【8月更文挑战第31天】Unity 是一款强大的游戏开发平台,支持多种编程语言,其中 C# 最为常用。本文介绍 C# 在 Unity 中的应用,涵盖脚本生命周期、常用函数、事件处理及面向对象编程等核心概念。通过具体示例,展示如何编写有效的 C# 脚本,包括 Start、Update 和 LateUpdate 等生命周期方法,以及碰撞检测和类继承等高级技巧,帮助开发者掌握 Unity 脚本编程基础,提升游戏开发效率。
42 0
|
2月前
|
C#
C# async await 异步执行方法
C# async await 异步执行方法
41 0
|
2月前
|
C# 图形学
小功能⭐️C#控制小数点后位数的方法
小功能⭐️C#控制小数点后位数的方法
|
2月前
|
C#
WPF/C#:数据绑定到方法
WPF/C#:数据绑定到方法
33 0
|
5月前
|
开发框架 前端开发 .NET
C#编程与Web开发
【4月更文挑战第21天】本文探讨了C#在Web开发中的应用,包括使用ASP.NET框架、MVC模式、Web API和Entity Framework。C#作为.NET框架的主要语言,结合这些工具,能创建动态、高效的Web应用。实际案例涉及企业级应用、电子商务和社交媒体平台。尽管面临竞争和挑战,但C#在Web开发领域的前景将持续拓展。
169 3
|
5月前
|
SQL 开发框架 安全
C#编程与多线程处理
【4月更文挑战第21天】探索C#多线程处理,提升程序性能与响应性。了解C#中的Thread、Task类及Async/Await关键字,掌握线程同步与安全,实践并发计算、网络服务及UI优化。跟随未来发展趋势,利用C#打造高效应用。
181 3
下一篇
无影云桌面