单元格间距和ConvertTo-Html片段

时间:2015-01-06 19:14:36

标签: html css powershell

我有一个有序的哈希表我正在使用以下代码转换为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

此表将成为更大的html报告的一部分(如果重要的话,表格中的表格)。这样可以正常工作,但细胞有点紧贴以获得舒适感。这是输出: enter image description here

我想在列之间添加一些间距,以便更容易阅读。

我尝试在ConvertTo-Html之后使用-Head并使用单元格填充设置样式,但它只是以纯文本形式打印html代码。

2 个答案:

答案 0 :(得分:1)

您正在上面的代码中创建HTML片段。如果您查看ConvertTo-HTML的{​​{3}}文章,您将看到无法将-Head和-Fragment参数组合在一起,因为它们来自不同的参数集。

在同一页面上查看-Fragment的详细信息,请阅读

  

仅生成HTML表格。片段:省略了HTML,HEAD,TITLE和BODY标记。

可能的解决方案

不确定这是否是答案的最佳机芯,但您可以在将html文本放入最终位置之前对其进行编辑。

$html = $html -replace "\<table\>",'<table cellpadding="10">'

$html是您的代码段的输出。这将为表添加一些填充,您可以根据需要进行调整。

<强>比较

首先显然是填充更改的示例。

enter image description here

答案 1 :(得分:0)

标签属性(<table cellpadding="10">)不应该在此日期和时间用于格式化。请改用CSS。您可以将表片段插入到HTML模板中,如下所示:

@"
<html>
<head>
<title>test</title>
<style type='text/css'>
table, th, td {
  border: 1px solid black;
  border-collapse: collapse;
}
th, td {
  padding: 5px;
}
</style>
</head>

<body>
$VFront
</body>
</html>
"@ | Out-File 'C:\path\to\your.html'

<强>示例:

padding: 0;

enter image description here

padding: 5px;

enter image description here

你也可以用CSS做其他时髦的东西,比如交替行颜色:

tr:nth-child(even) {
  background: lightgray;
}
tr:nth-child(odd) {
  background: white;
}

enter image description here