##function to convert any datatable to html table
function Convert-DatatablHtml ( $dt)
{
$html = "<!DOCTYPE html>
<html>
<head>
<style>
table, th, td {
border: 1px solid black;
border-collapse: collapse;
}
</style>
</head>
<body>
<table border=""1""
style=""width:20%"">";
$hmtl +="<tr>"
for($i = 0;$i -lt $dt.Columns.Count;$i++)
{
$html += "<td>"+$dt.Columns[$i].ColumnName+"</td>"
}
$html +="</tr>"
for($i=0;$i -lt $dt.Rows.Count; $i++)
{
$hmtl +="<tr>"
for($j=0; $j -lt $dt.Columns.Count; $j++)
{
$html += "<td>"+$dt.Rows[$i][$j].ToString()+"</td>"
}
$html +="</tr>"
}
$html += "</table>
</body>
</html>"
return $html
}
##How it works
##creating a sample databtale to test
$dt = New-Object "System.Data.DataTable"
$dt.Columns.Add("id",[int]);
$dt.Columns.Add("value",[string]);
$dtnew = $dt.NewRow();
$dtnew.id =1;
$dtnew.value="test";
$dt.Rows.Add($dtnew)
$dtnew = $dt.NewRow();
$dtnew.id =1;
$dtnew.value="test";
$dt.Rows.Add($dtnew)
##Converting data table to html
$h = Convert-DatatablHtml -dt $dt
$h
##writing html table to a html file
$h |out-file "c:\temp\test.html"
##Send an email with with formated html
Send-MailMessage -to "to@yahoo.com" -SmtpServer "smtpserver" -body $h -Subject test -From "from@yahoo.com" -BodyAsHtml
Like this:
Like Loading...
Related
Nice and simple. Thx