我的标头如下:
Avis,N° Invent.,Cd.Srv.Cl.,客户端名称
我找到了这段代码来更改我的标头
Import-Csv "$treatmentfolderdata.csv" |
Select-Object @{expression={$_.Avis}; label='avis'} |
Export-Csv -NoTypeInformation "$treatmentfolderdata2.csv"
如何更改字符为空格、.
、°
等的标题名称?
要选择和重命名特定字段,请将要更改其名称的字段的名称放在引号中:
... | Select-Object @{n='no_invent';e={$_.'N° Invent.'}}, ... | ...
要替换特定字段,除了创建重命名的字段外,还要排除原始字段:
... | Select-Object *,@{n='no_invent';e={$_.'N° Invent.'}} -Exclude 'N° Invent.' | ...
由于 CSV 只是一个文本文件,我们可以将其视为文件第一行的字符串替换(数组项0
(
此选项使用简单的正则表达式来删除任何不是:0-9
a-z
A-Z
,
或(空格(的内容,因此只需修改要保留到正则表达式中的任何其他字符即可。这将适用于任何标头名称。
$content = Get-Content -Path "$treatmentfolderdata.csv"
$content[0] = $content[0] -replace '[^0-9a-zA-Z, ]'
Set-Content "$treatmentfolderdata.csv"
另一种选择是将多个CC_9链接在一起,这使您可以根据需要添加/删除/更改标头。但与上面的选项不同,它是硬编码到特定的标头名称,因此运行不同的文件并不那么简单。
$content[0] = $content[0] -replace 'N° Invent.','No_Invent' -replace 'Cd.Srv.Cl.','Cd-Srv-Cl'