C# - Convert Datatable to Html Format
.Net - Creating HTML from a DataTable using C#
In my previous article I explained about How can I send email from Gmail - ASP.Net. In this post I will show you how to convert a datatable to html format. Actually sometimes we have a scenario like I want to send email with some dynamic data from datatable. Find the source code below:
Default.aspx.cs
using System;
using System;
using
System.Collections.Generic;
using System.Data;
using System.IO;
using System.Linq;
using System.Text;
using System.Web;
using System.Web.UI;
using
System.Web.UI.WebControls;
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
BindDatatable();
}
/// <summary>
/// Author: eTechPulse
/// Description:
Convert datatable to html format
/// </summary>
// Creating a dummy table
private void BindDatatable()
{
DataTable dt = new DataTable();
dt.Columns.Add("EmpId", typeof(int));
dt.Columns.Add("Name", typeof(string));
dt.Columns.Add("Address", typeof(string));
dt.Columns.Add("Date", typeof(DateTime));
//
// Here we add five DataRows.
//
dt.Rows.Add(25, "Rk", "Gurgaon", DateTime.Now);
dt.Rows.Add(50, "Sachin", "Noida", DateTime.Now);
dt.Rows.Add(10, "Nitin", "Noida", DateTime.Now);
dt.Rows.Add(21, "Aditya", "Meerut", DateTime.Now);
dt.Rows.Add(100, "Mohan", "Banglore", DateTime.Now);
string HtmlBody =
ConvertToHtmlFile(dt);
Response.Write(HtmlBody);
}
// Converting datatable to
HTML string Sample 1
public string ConvertDT2HTMLString(DataTable dt)
{
StringBuilder sb = new StringBuilder();
sb.Append("<html><body><table><thead><tr>");
foreach (DataColumn c in dt.Columns)
{
sb.AppendFormat("<th>{0}</th>", c.ColumnName);
}
sb.AppendLine("</tr></thead><tbody>");
foreach (DataRow dr in dt.Rows)
{
sb.Append("<tr>");
foreach (object o in dr.ItemArray)
{
sb.AppendFormat("<td>{0}</td>", System.Web.HttpUtility.HtmlEncode(o.ToString()));
}
sb.AppendLine("</tr>");
}
sb.AppendLine("</tbody></table></body></html>");
return sb.ToString();
}
Output:
// Converting datatable to
HTML string Sample 2
private string
ConvertDT2HTMLString2(DataTable
dt)
{
string tab = "\t";
StringBuilder sb = new StringBuilder();
sb.AppendLine("<html>");
sb.AppendLine(tab + "<body>");
sb.AppendLine(tab + tab + "<table>");
// headers.
sb.Append(tab + tab + tab + "<tr>");
foreach (DataColumn dc in dt.Columns)
{
sb.AppendFormat("<td>{0}</td>", dc.ColumnName);
}
sb.AppendLine("</tr>");
// data rows
foreach (DataRow dr in dt.Rows)
{
sb.Append(tab + tab + tab + "<tr>");
foreach (DataColumn dc in dt.Columns)
{
string cellValue = dr[dc]
!= null ? dr[dc].ToString()
: "";
sb.AppendFormat("<td>{0}</td>", cellValue);
}
sb.AppendLine("</tr>");
}
sb.AppendLine(tab + tab + "</table>");
sb.AppendLine(tab + "</body>");
sb.AppendLine("</html>");
return sb.ToString();
}
// Creating a HTML file from
datatable with style
public string ConvertToHtmlFile(DataTable targetTable)
{
string myHtmlFile = "";
//Get a worker object.
StringBuilder strBuilder = new StringBuilder();
//Open tags and write the top
portion.
strBuilder.Append("<html
xmlns='http://www.w3.org/1999/xhtml'>");
strBuilder.Append("<head>");
strBuilder.Append("<title>");
strBuilder.Append("Page-");
strBuilder.Append(Guid.NewGuid().ToString());
strBuilder.Append("</title>");
strBuilder.Append("</head>");
strBuilder.Append("<body>");
strBuilder.Append("<table
border='1px' cellpadding='5' cellspacing='0' ");
strBuilder.Append("style='border:
solid 1px Silver; font-size: x-small;'>");
//Add the headings row.
strBuilder.Append("<tr
align='left' valign='top'>");
foreach (DataColumn myColumn in
targetTable.Columns)
{
strBuilder.Append("<td
align='left' valign='top'>");
strBuilder.Append(myColumn.ColumnName);
strBuilder.Append("</td>");
}
strBuilder.Append("</tr>");
//Add the data rows.
foreach (DataRow myRow in targetTable.Rows)
{
strBuilder.Append("<tr
align='left' valign='top'>");
foreach (DataColumn myColumn in
targetTable.Columns)
{
strBuilder.Append("<td
align='left' valign='top'>");
strBuilder.Append(myRow[myColumn.ColumnName].ToString());
strBuilder.Append("</td>");
}
strBuilder.Append("</tr>");
}
//Close tags.
strBuilder.Append("</table>");
strBuilder.Append("</body>");
strBuilder.Append("</html>");
//Get the string for return.
myHtmlFile = strBuilder.ToString();
return myHtmlFile;
}
Output:
}
Download the source code click here
Please leave your comments, suggestions and queries about this post in the comment sections in order for me to improve my writing skills and to showcase more useful posts. Thanks for reading!
C# - Convert Datatable to Html Format
Reviewed by Ravi Kumar
on
2:42 PM
Rating:
Great :D
ReplyDelete