-8

我正在使用下面的代码构建具有格式的字符串,我想将其转换为普通字符串,因为字符串中的消息将是发送的电子邮件。我怎样才能把它变成表格格式?我得到的输出是这将全部打印在电子邮件中的一行中,我希望看到它,所以它实际上布局良好

   <table>
       <tr>
         <td>as</td>
         <td>Success</td>
       </tr>
        <tr>
         <td>as</td>
         <td>Success</td>
       </tr>
    </table>

myString.Append("<table>");
var activityLog = TwitterData.GetActivityLog();
for (int i = 0; i < activityLog.Rows.Count;i++ )
{
    myString.Append("<tr>");
    myString.Append("<td>" + activityLog.Rows[i]["PageName"].ToString() + "</td>");
    myString.Append("<td>" + activityLog.Rows[i]["Status"].ToString() + "</td>");
    myString.Append("</tr>");
}

myString.Append("</table>");

想要的输出

Name   |  log
as     |   success
as     |   success
4

2 回答 2

3

假设您使用的是 .net 邮件客户端,请指明正文是 HTML。

var mail = new MailMessage();
mail.Body = myString.ToString();
mail.IsBodyHtml = true;

请记住,您的myStringis aStringBuilder并且需要转换为 a string

于 2013-10-17T15:02:56.980 回答
0

假设您需要将其格式化为纯文本,您可以执行类似的操作

myString.Append("<table>");
var activityLog = TwitterData.GetActivityLog();
for (int i = 0; i < activityLog.Rows.Count;i++ )
{
    myString.AppendFormat("{0}<tr>{0}\t<td>{1}</td>{0}\t<td>{2}</td>{0}</tr>{0}", Environment.NewLine, activityLog.Rows[i]["PageName"], activityLog.Rows[i]["Status"]);
}
myString.Append("</table>");

示例程序

var sb = new StringBuilder();
sb.Append("<table>");
for (int i = 0; i < 4; i++)
{
    sb.AppendFormat("{0}<tr>{0}\t<td>{1}</td>{0}\t<td>{2}</td>{0}</tr>{0}", Environment.NewLine, "field1", "field2");
}
sb.Append("</table>");
Console.WriteLine(sb);

输出

<table>
<tr>
    <td>field1</td>
    <td>field2</td>
</tr>
<tr>
    <td>field1</td>
    <td>field2</td>
</tr>
<tr>
    <td>field1</td>
    <td>field2</td>
</tr>
<tr>
    <td>field1</td>
    <td>field2</td>
</tr>
于 2013-10-17T15:03:40.473 回答