Whenever you want to convert the data in DataGridView you can use the following method , the process is very easy , put this method in any common class in your application an call it , it will return a string contain the HTML Table.
public static string ConvertToHtmlTable(DataGridView targetTable) { string myHtmlFile = ""; if (targetTable == null) { throw new System.ArgumentNullException("targetTable"); } var myBuilder = new StringBuilder(); myBuilder.Append("<html"); myBuilder.Append("<head>"); myBuilder.Append("<title>"); myBuilder.Append("Page-"); myBuilder.Append(Guid.NewGuid().ToString()); myBuilder.Append("</title>"); myBuilder.Append("</head>"); myBuilder.Append("<body>"); myBuilder.Append("<table border='1px' cellpadding='5' cellspacing='0' "); myBuilder.Append("style='border: solid 1px Silver;'>"); myBuilder.Append("<tr align='left' valign='top'>"); foreach (DataGridViewColumn myColumn in targetTable.Columns) { if (CanExport(myColumn.HeaderText)) { myBuilder.Append("<td align='left' valign='top'>"); myBuilder.Append(myColumn.HeaderText); myBuilder.Append("</td>"); } } myBuilder.Append("</tr>"); //Add the data rows. foreach (DataGridViewRow myRow in targetTable.Rows) { myBuilder.Append("<tr align='left' valign='top'>"); foreach (DataGridViewColumn myColumn in targetTable.Columns) { if (CanExport(myColumn.HeaderText)) { myBuilder.Append("<td align='left' valign='top'>"); myBuilder.Append(myRow.Cells[myColumn.HeaderText].Value.ToString()); myBuilder.Append("</td>"); } } myBuilder.Append("</tr>"); } //Close tags. myBuilder.Append("</table>"); myBuilder.Append("</body>"); myBuilder.Append("</html>"); //Get the string for return. myHtmlFile = myBuilder.ToString(); return myHtmlFile; }