-8

以下のコードを使用して、フォーマット付きの文字列を作成しています。文字列内のメッセージは電子メールで送信されるため、これを通常の文字列に変換したいと考えています。これを表形式にするにはどうすればよいですか?私が得た出力は、これがすべて電子メールの 1 行で下に印刷されることです。実際にうまくレイアウトされているので、見たいと思います。

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

yourmyStringは でStringBuilderあり、 に変換する必要があることに注意してください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 に答える