$Header = @"
<style>
TABLE {border-width: 1px; border-style: solid; border-color: black; border-collapse: collapse;}
TH {border-width: 1px; padding: 3px; border-style: solid; border-color: black;}
TD {border-width: 1px; padding: 3px; border-style: solid; border-color: black;}
</style>
"@
(($Json | ConvertFrom-Json).PSObject.Properties | Select Name -ExpandProperty Value | ConvertTo-HTML -Head $Header -Property Name, Prod, Other).Replace("Name","No of Days") | Set-Content c:\temp\table.html
I got this to work from creating a $json variable using your example data above. I think it outputs as you required. If you need to use the HTML in something like an email, just capture the output to $body rather then to file like I have for testing