将数组转换为html表

时间:2015-03-06 23:23:29

标签: powershell

(1)我期待以下声明

@(1,2,3) | ConvertTo-Html -Fragment

返回

<table>
<tr><td>1</td></tr>
<tr><td>2</td></tr>
<tr><td>3</td></tr>
</table>

但它返回

<table>
</table>


(2)

'11','22','33' | ConvertTo-Html -Fragment

返回

<table>
<colgroup><col/></colgroup>
<tr><th>*</th></tr>
<tr><td>2</td></tr>
<tr><td>2</td></tr>
<tr><td>2</td></tr>
</table>

预期:

<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>

1 个答案:

答案 0 :(得分:5)

它希望您提供一系列对象。所以例如两个,你的预期输出甚至在那里说“我的列名”,但你从来没有提供过任何东西。此外,您必须指定要包含表的属性,或者默认为“*”以表示所有内容。所以你能做的就是:

'11','22','33' | ForEach{[PSCustomObject]@{'My Column Name'=$_}} | ConvertTo-HTML -Fragment -Property 'My Column Name'

您的输出将是:

<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>

使用Select命令可以达到相同的效果:

'11','22','33' | Select @{label='My Column Name';expression={$_}} | ConvertTo-HTML -Fragment -Property 'My Column Name'