PowerShell 用 ConvertTo-Html 将对象管道转 HTML 表格,自动提取属性生成表头与行;支持 -Property 筛选列、-Fragment 输出片段、-Head 添加 CSS 样式,并需避免在前使用 Format-Table 导致乱码。
powershell 对象管道转 html 表格报告,核心是用 convertto-html 命令,它直接接收对象流、按属性自动生成表格结构,不需手动拼接标签。
基础用法:一行命令生成标准表格页
只要对象有属性(比如 Get-Process 的 Name、ID、CPU),ConvertTo-Html 就能自动提取首对象的属性名作表头,其余对象按行填充。空缺属性留空,多余属性被忽略。
- 生成默认页面:
Get-Service | ConvertTo-Html | Out-File services.html - 指定标题和文件名:
Get-Process | ConvertTo-Html -Title "当前进程" | Out-File proc.html - 只导出表格片段(无 html/head/body):
-Fragment参数,适合嵌入已有网页
控制显示字段:用 -Property 精确筛选列
默认会列出所有属性,但多数场景只需关键几列。用 -Property 明确指定字段,顺序即为表格列序。
- 例如只显示进程名、ID 和公司:
Get-Process | ConvertTo-Html -Property Name, Id, Company | Out-File proc-basic.html - 支持计算属性(需先用
Select-Object构造):Get-Process | Select-Object Name, @{n='MemMB';e={$_.WS/1MB}} | ConvertTo-Html
添加样式与结构:用 -Head、-Body、-PreContent 定制外观
纯 HTML 表格默认无样式,但可通过内联 CSS 控制颜色、边框、背景等。建议把样式定义在 -Head 中,内容说明放在 -Body 或 -PreContent。
文章转信息图。将文章/笔记转化为手机可读的 HTML 信息图,自动匹配视觉风格。触发场景:文章转图、笔记转图、信息图、转小红书图、做张图、可视化这篇文章、文生图。
- 简单美化示例:
$style = @"
<style>
TABLE { border-collapse: collapse; width: 100%; }
TH, TD { border: 1px solid #333; padding: 6px; text-align: left; }
TH { background-color: #4CAF50; color: white; }
TR:nth-child(even) { background-color: #f2f2f2; }
</style>
"@
Get-Service | ConvertTo-Html -Head $style -PreContent "<h2>服务状态汇总</h2>" | Out-File report.html
注意事项:避免常见陷阱
ConvertTo-Html 处理的是对象,不是格式化后的文本。因此不能在前面加 Format-Table 或 Format-List,否则传入的是格式化字符串,生成的 HTML 就是乱码或单列文本。
立即学习“前端免费学习笔记(深入)”;
- 错误写法:
Get-Process | Format-Table Name, CPU | ConvertTo-Html→ 输出不可用 - 正确顺序:先选字段(
Select-Object)、再转 HTML - 若要导出后直接打开,可追加
Invoke-Item report.html


















