PowerShell: преобразовать массив в HTML-таблицу - PullRequest
0 голосов
/ 12 ноября 2018

Как мне преобразовать простой массив хэшей в PowerShell в таблицу HTML?

$array = @{

"Name" = "My Name"
"Surname" = "My Surname"
"Address" = "My Address"
"DateOfBirth" = "My Date Of Birth"
"Hobby" = "My Hobby"
 "Age" = "My Age" 
 }

enter image description here

А затем просто продолжать добавлять строки?Кто-нибудь достиг этого раньше?Ниже я приведу примеры того, что я пробовал до сих пор на нескольких онлайн-форумах:

[System.Management.Automation.PSCustomObject]$array | ConvertTo-Html
-Fragment

Невозможно преобразовать значение типа "System.Collections.Hashtable" типа "System.Collections.Hashtable"набрать" System.Management.Automation.PSCustomObject ".В строке: 0 char: 0 + [System.Management.Automation.PSCustomObject] $ array |ConvertTo-Html ... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo: InvalidArgument: (:) [], RuntimeException + FullyQualifiedErrorId: ConvertToFinalInvalidCastException

New-Object psobject -Property $array | ConvertTo-Html -Fragment

System.Collections.DictionaryEntry System.Collections.DictionaryEntry System.Collections.DictionaryEntry System.Collections.DictionaryEntry System.Collections.DictionaryEntry System.Collections.DictionaryEntry

$array | Select 'Name','Surname','Address','DateOfBirth','Hobby', 'Age' | ConvertTo-HTML -Fragment

System.Collections.DictionaryEntry System.Collections.DictionaryEntry System.Collections.DictionaryEntry System.Collections.DictionaryEntry System.Collections.DictionaryEntry System.Collections.DictionaryEntry

 $array | Select 'Name','Surname','Address','DateOfBirth','Hobby', 'Age' | ConvertTo-HTML -as Table -Fragment

System.Collections.DictionaryEntry System.Collections.DictionaryEntry System.Collections.DictionaryEntry System.Collections.DictionaryEntry System.Collections.DictionaryEntry System.Collections.DictionaryEntry

$array | Select 'Name','Surname','Address','DateOfBirth','Hobby', 'Age' | ConvertTo-HTML -as Table -Fragment | Out-String

System.Collections.DictionaryEntry System.Collections.DictionaryEntry System.Collections.DictionaryEntry System.Collections.DictionaryEntry System.Collections.DictionaryEntry System.Collections.DictionaryEntry

$table = $array.GetEnumerator() | ConvertTo-Html -Fragment -As Table

enter image description here

$table = $array.GetEnumerator() | select "Name", "Surname", "Address", "DateOfBirth", "Hobby", "Age" | ConvertTo-Html -Fragment -As Table

enter image description here

Как видите, так много разных подходов, и ни один из них не привел к успеху: - (

Ответы [ 2 ]

0 голосов
/ 12 ноября 2018

Вы имеете в виду что-то подобное?

$table = [PSCustomobject]$array| ConvertTo-Html -Fragment -As Table
$table

<table>
<colgroup><col/><col/><col/><col/><col/><col/></colgroup>
<tr><th>Name</th><th>Age</th><th>Surname</th><th>DateOfBirth</th><th>Hobby</th><th>Address</th></tr>
<tr><td>My Name</td><td>My Age</td><td>My Surname</td><td>My Date Of Birth</td><td>My Hobby</td><td>My Address</td></tr>
</table>

Из какого источника вы хотите добавить строки?

0 голосов
/ 12 ноября 2018

'11 ',' 22 ',' 33 '|ForEach {[PSCustomObject] @ {'Имя моего столбца' = $ _}} |ConvertTo-HTML -Fragment -Property 'Имя моего столбца'

В результате вы получите:

<table>
<colgroup><col/></colgroup>
<tr><th>My Column Name</th></tr>
<tr><td>11</td></tr>
<tr><td>22</td></tr>
<tr><td>33</td></tr>
</table>
...