如何用PowerShell将Get-Content读取的CSV数据转为表格格式?
解决PowerShell读取CSV后邮件展示规整表格的方法
别用Get-Content读CSV了,它只会把文件当成纯文本读取,自然格式混乱。直接用PowerShell的CSV专用cmdlet处理,步骤如下:
第一步:正确读取CSV数据
用Import-Csv替代Get-Content,它会自动解析CSV的表头与对应行数据,生成结构化的对象数组:$csvData = Import-Csv -Path "你的CSV文件路径.csv" # 如果文件有特殊编码,可添加-Encoding参数,例如-Encoding UTF8第二步:转换为HTML表格
邮件客户端对HTML表格支持最佳,用ConvertTo-Html把结构化数据转成标准表格:# 生成仅含表格部分的HTML片段(不带完整HTML文档结构) $htmlTable = $csvData | ConvertTo-Html -Fragment想要表格更美观,可添加简单CSS样式:
$tableStyle = @" <style> table { border-collapse: collapse; width: 100%; } th, td { border: 1px solid #ddd; padding: 8px; text-align: left; } th { background-color: #f2f2f2; } </style> "@ # 拼接样式与表格,生成完整邮件HTML内容 $mailBody = $tableStyle + $htmlTable第三步:发送带HTML表格的邮件
发送邮件时指定-BodyAsHtml $true,确保邮件客户端正确渲染表格:Send-MailMessage -To "收件人邮箱@xxx.com" ` -From "发件人邮箱@xxx.com" ` -Subject "CSV数据报表" ` -Body $mailBody ` -BodyAsHtml ` -SmtpServer "你的SMTP服务器地址"
这样不管CSV内容如何变化,生成的表格都会自动适配表头与数据列,保持格式规整。
内容的提问来源于stack exchange,提问作者Icchi
相关产品推荐
相关产品推荐

