C#將DataTable的資料轉為HTML表格

  • 2614
  • 0

將DataTable 轉為HTML格式的字串,並以表格呈現


 

使用 DataAdapter物件撈取資料庫 ( DataBase ) 的資料指派給DataTable,
卻不知道如何呈現表格化的資料。
→將Datatable資料表轉為html表格的字串,搭配先前的發信功能將HTML表格發送到相關收件者的信箱。

        public static string getHtml(DataTable dt)
        {
            try
            {
                //messageBody = 內容主體
                string messageBody = "<font>以下為dt作為引數傳入的Table資料表: </font><br><br>";
                if (dt.Rows.Count == 0)
                {
                    return messageBody;  //dt為empty的情況
                }
                //設定html格式
                string htmlTableStart = "<table style=\"border-collapse:collapse; text-align:center;\" >";
                string htmlTableEnd = "</table>";
                string htmlHeaderRowStart = "<tr style =\"background-color:#6FA1D2; color:#ffffff;\">";
                string htmlHeaderRowEnd = "</tr>";
                string htmlTrStart = "<tr style =\"color:#555555;\">";
                string htmlTrEnd = "</tr>";
                string htmlTdStart = "<td style=\" border-color:#5c87b2; border-style:solid; border-width:thin; padding: 5px;\">";
                string htmlTdEnd = "</td>";

                messageBody += htmlTableStart;
                messageBody += htmlHeaderRowStart;
                //設定dt欄位(Column)名稱
                messageBody += htmlTdStart + " Column1 " + htmlTdEnd + htmlTdStart + " Column2 " + htmlTdEnd;
                messageBody += htmlTdStart + " Column3 " + htmlTdEnd + htmlTdStart + " Column4 " + htmlTdEnd;
                messageBody += htmlTdStart + " Column5 " + htmlTdEnd + htmlTdStart + " Column6 " + htmlTdEnd;
                messageBody += htmlHeaderRowEnd;
                //將dt每一行的資料依序Traverse、存取。
                foreach (DataRow Row in dt.Rows)
                {
                    messageBody += htmlTrStart;
                    messageBody += htmlTdStart + Row["Column名稱1"] + htmlTdEnd;
                    messageBody += htmlTdStart + Row["Column名稱2"] + htmlTdEnd;
                    messageBody += htmlTdStart + Row["Column名稱3"] + htmlTdEnd;
                    messageBody += htmlTdStart + Row["Column名稱4"] + htmlTdEnd;
                    messageBody += htmlTdStart + Row["Column名稱5"] + htmlTdEnd;
                    messageBody += htmlTdStart + Row["Column名稱6"] + htmlTdEnd;
                    messageBody += htmlTrEnd;
                }
                
                messageBody += htmlTableEnd;

                return messageBody;
            }
            catch (Exception ex)
            {
                return null;
            }
        }