For format options see
How to convert string in a variable to html table

Hello everyone,
I am generating a report that I would like to send in some pretty and readable format. So basically, all the steps report is performing lead to a variable $report being filled in with a string like this:
User 123 is a O365 licensed user with access to O365 applications.
User 456 is a O365 licensed user with access to O365 applications.
User 789 is a O365 licensed user with access to O365 applications.
User abc is a O365 licensed user with access to O365 applications.
User def is a O365 licensed user with access to O365 applications.
User ghi is a O365 licensed user with access to O365 applications.
But when use the ConvertTo-Html utility, I get only this (similar result when attempting to Export-Csv):
$report | convertto-html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>HTML TABLE</title>
</head><body>
<table>
<colgroup><col/></colgroup>
<tr><th>*</th></tr>
<tr><td>134</td></tr>
<tr><td>137</td></tr>
<tr><td>138</td></tr>
<tr><td>135</td></tr>
<tr><td>134</td></tr>
<tr><td>135</td></tr>
</table>
</body></html>
Can anyone help me to format the output so it is in html format, and all the data is visible/readable?
How do I create a powershell object out of this so it is "convertible" to output formats like html/csv/json etc?
Many thanks,
Tomas the Noob
2 answers
Sort by: Most helpful
-
-
Rich Matheisen 38,831 Reputation points
2023-05-04T15:42:52.2666667+00:00 Here's an example of converting your array into 1) simple paragraphs and 2) into a table.
$report = "User 123 is a O365 licensed user with access to O365 applications.", "User 456 is a O365 licensed user with access to O365 applications.", "User 789 is a O365 licensed user with access to O365 applications.", "User abc is a O365 licensed user with access to O365 applications.", "User def is a O365 licensed user with access to O365 applications.", "User ghi is a O365 licensed user with access to O365 applications." $freport = ForEach ($l in $report){ $l = "<p>{0}</p>" -f $l # each item becomes a paragraph $l } convertto-html -body $freport | out-file C:\junk\freport.html [array]$treport = "<table>","<colgroup><col/></colgroup>","<tr><th>Licenses</th></tr>" ForEach ($l in $report){ $treport += "<tr><td>{0}</td></tr>" -f $l # each item becomes a table entry } $treport += "</table>" ConvertTo-HTML -Head "<title>O365 users</title>" -body $treport | out-file c:\junk\treport.html