2017-08-30 1 views
-1

これは電子メールとしてdatagridviewを送信する私のコードです。このコードは、datagridviewでデータを送信するだけで私にとって役に立ちます。DataGridviewをヘッダとしてメールとして送信する

テーブルヘッダーを追加する方法を教えてください。私は電子メールがテーブルヘッダーを含む全体のテーブルとして送信されるようにします。電子メールでそれを送信するためHTMLにごDataGridViewを変換するための

var client = new SmtpClient("smtp.gmail.com", 587); 
client.EnableSsl = true; 
client.Credentials = new NetworkCredential("from_mail", "password"); 

var mail = new MailMessage(); 
mail.From = new MailAddress("from_mail"); 
mail.To.Add("to_mail"); 
mail.IsBodyHtml = true; 
mail.Subject = "test"; 

string mailBody = "<table width='100%' style='border:Solid 1px Black;'>"; 

foreach (DataGridViewRow row in dataGridView2.Rows) 
{ 
    mailBody += "<tr>"; 
    foreach (DataGridViewCell cell in row.Cells) 
    { 
     mailBody += "<td>" + cell.Value + "</td>"; 
    } 
    mailBody += "</tr>"; 
} 
mailBody += "</table>"; 

//your rest of the original code 
mail.Body = mailBody; 
client.Send(mail); 
MessageBox.Show("mail send"); 
this.Close(); 
+0

可能な複製を(https://stackoverflow.com/questions/16547588/sending-datagridview-to-email) –

答えて

0

は、以下の機能を使用します。[DataGridViewのは、電子メールに送信]の

private StringBuilder DataGridtoHTML(DataGridView dg) 
{ 
    StringBuilder strB = new StringBuilder(); 

    //create html & table 
    strB.AppendLine("<html><body><center><" + 
       "table border='1' cellpadding='0' cellspacing='0'>"); 
    strB.AppendLine("<tr>"); 

    //create table header 
    for (int i = 0; i < dg.Columns.Count; i++) 
    { 
    strB.AppendLine("<td align='center' valign='middle'>" + 
        dg.Columns[i].HeaderText + "</td>"); 
    } 

    //create table body 
    strB.AppendLine("<tr>"); 
    for (int i = 0; i < dg.Rows.Count; i++) 
    { 
    strB.AppendLine("<tr>"); 
    foreach (DataGridViewCell dgvc in dg.Rows[i].Cells) 
     { 
      strB.AppendLine("<td align='center' valign='middle'>" + 
          dgvc.Value.ToString() + "</td>"); 
     } 
    strB.AppendLine("</tr>"); 
    } 

    //table footer & end of html file 
    strB.AppendLine("</table></center></body></html>"); 
    return strB; 
} 
関連する問題