单元格间距和 ConvertTo-Html 片段
Cell spacing and ConvertTo-Html Fragment
我有一个有序的散列table我正在使用以下代码转换为HTML:
$VFront = $VPLEX_Front | % {
$cluster = $_ -split ' +'
$hash = [ordered]@{
'Cluster Name' = $cluster[0]
'Total Storage Views' = $cluster[1]
'Unhealthy Storage Views' = $cluster[2]
'Total Registered Initiators' = $cluster[3]
'Total Ports' = $cluster[4]
'Total Exported Volumes' = $cluster[5]
'Total ITLs' = $cluster[6]
}
New-Object -Type PSCustomObject -Property $hash
} | ConvertTo-Html -Fragment
此 table 将成为更大的 html 报告的一部分(table 在 table 中,如果重要的话)。这工作正常,但为了舒适起见,细胞有点关闭。这是输出:
我想在列之间添加一些间距,以便于阅读。
我尝试在 ConvertTo-Html 之后使用 -Head 并设置带有单元格填充的样式,但它只是以纯文本形式打印了 html 代码。
您正在上面的代码中创建 HTML 的片段。如果您查看 ConvertTo-HTML
的 TechNet 文章,您会发现不能组合 -Head 和 -Fragment 参数,因为它们来自不同的参数集。
在同一页上查看 -Fragment
的详细信息显示
Generates only an HTML table. Fragment: The HTML, HEAD, TITLE, and BODY tags are omitted.
可能的解决方案
不确定这是否是最佳答案,但您可以在将 html 文本放入最终位置之前对其进行编辑。
$html = $html -replace "\<table\>",'<table cellpadding="10">'
其中 $html
是代码片段的输出。这将为 table 添加一些填充,您可以根据需要进行调整。
比较
首先显然是更改了填充的示例。
标签属性 (<table cellpadding="10">
) 在当今时代不应再用于格式化。请改用 CSS。您可以像这样将 table 片段插入到 HTML 模板中:
@"
<html>
<head>
<title>test</title>
<b><i><style type='text/css'>
table, th, td {
border: 1px solid black;
border-collapse: collapse;
}
th, td {
padding: 5px;
}
</style></i></b>
</head>
<body>
<b><i>$VFront</i></b>
</body>
</html>
"@ | Out-File 'C:\path\to\your.html'
示例:
Table 与 padding: 0;
:
Table 与 padding: 5px;
:
您也可以使用 CSS 做其他时髦的事情,比如交替行颜色:
tr:nth-child(even) {
background: lightgray;
}
tr:nth-child(odd) {
background: white;
}
我有一个有序的散列table我正在使用以下代码转换为HTML:
$VFront = $VPLEX_Front | % {
$cluster = $_ -split ' +'
$hash = [ordered]@{
'Cluster Name' = $cluster[0]
'Total Storage Views' = $cluster[1]
'Unhealthy Storage Views' = $cluster[2]
'Total Registered Initiators' = $cluster[3]
'Total Ports' = $cluster[4]
'Total Exported Volumes' = $cluster[5]
'Total ITLs' = $cluster[6]
}
New-Object -Type PSCustomObject -Property $hash
} | ConvertTo-Html -Fragment
此 table 将成为更大的 html 报告的一部分(table 在 table 中,如果重要的话)。这工作正常,但为了舒适起见,细胞有点关闭。这是输出:
我想在列之间添加一些间距,以便于阅读。
我尝试在 ConvertTo-Html 之后使用 -Head 并设置带有单元格填充的样式,但它只是以纯文本形式打印了 html 代码。
您正在上面的代码中创建 HTML 的片段。如果您查看 ConvertTo-HTML
的 TechNet 文章,您会发现不能组合 -Head 和 -Fragment 参数,因为它们来自不同的参数集。
在同一页上查看 -Fragment
的详细信息显示
Generates only an HTML table. Fragment: The HTML, HEAD, TITLE, and BODY tags are omitted.
可能的解决方案
不确定这是否是最佳答案,但您可以在将 html 文本放入最终位置之前对其进行编辑。
$html = $html -replace "\<table\>",'<table cellpadding="10">'
其中 $html
是代码片段的输出。这将为 table 添加一些填充,您可以根据需要进行调整。
比较
首先显然是更改了填充的示例。
标签属性 (<table cellpadding="10">
) 在当今时代不应再用于格式化。请改用 CSS。您可以像这样将 table 片段插入到 HTML 模板中:
@"
<html>
<head>
<title>test</title>
<b><i><style type='text/css'>
table, th, td {
border: 1px solid black;
border-collapse: collapse;
}
th, td {
padding: 5px;
}
</style></i></b>
</head>
<body>
<b><i>$VFront</i></b>
</body>
</html>
"@ | Out-File 'C:\path\to\your.html'
示例:
Table 与 padding: 0;
:
Table 与 padding: 5px;
:
您也可以使用 CSS 做其他时髦的事情,比如交替行颜色:
tr:nth-child(even) {
background: lightgray;
}
tr:nth-child(odd) {
background: white;
}