从数据表使用C#创建HTML [英] Creating HTML from a DataTable using C#

查看:151
本文介绍了从数据表使用C#创建HTML的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我需要能够为HTML数据传递到Outlook这样的:

I need to be able to pass HTML data into Outlook like this:

MailMessage message = new MailMessage();
message.Body = myBody;

起初,我以为我可以通过纯文本并使用 PadLeft 是这样的:

somestring.PadLeft(100);

但它没有对准一切正常,因为即使 ||||| MMMMM 均只有5字符长,他们身体在屏幕上占用更多的空间。

but it did not align everything properly because even though ||||| and MMMMM are both only 5 characters in length, they physically on the screen take up more space.

我的解决方案是将数据在我的数据表到HTML表,然后将它传递到Outlook中。

my solution is to convert data that is in my datatable into an HTML table and then pass it into Outlook.

  1. 如何转换数据表为一个HTML表格?
  2. 有我的问题,更好的解决方案?

非常感谢您的帮助。

推荐答案

循环在你的数据表,并建立HTML字符串。 IE浏览器:

Loop over your DataTable, and build up the html string. IE:

DataTable dt = new DataTable();

dt.Columns.Add("col1");
dt.Columns.Add("col2");
dt.Columns.Add("col3");
dt.Rows.Add(new object[] { "a", "b", "c" });
dt.Rows.Add(new object[] { "d", "e", "f" });

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>");

这篇关于从数据表使用C#创建HTML的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆