根据一列的值拆分 csv 文件
Posted
技术标签:
【中文标题】根据一列的值拆分 csv 文件【英文标题】:Spliting a csv file based on the value of one column 【发布时间】:2017-10-10 02:37:47 【问题描述】:我有一个 csv 文件,我必须根据列的值对其进行拆分。 我正在使用以下脚本来执行此操作:
Import-Csv test.csv | Group-Object -Property "Nr dep" |
Foreach-Object $path=$_.name+".csv" ; $_.group |
Export-Csv -Path E:\PowerShell\script\$path -NoTypeInformation
文件根据Nr dep
值列拆分为文件,但带有引号,并且仅适用于逗号分隔的 csv 文件。
我尝试使用-replace
,但仍然没有结果(也许我写得不好)
Import-Csv test.csv | Group-Object -Property "Nr dep" |
Foreach-Object $path=$_.name+".csv" ; ($_.group |
ConvertTo-Csv -NoTypeInformation) -replace '"', "" | Out-File E:\PowerShell\script\$path -Force
1) 如何将分隔符设为半逗号而不是逗号 2) 我怎样才能摆脱引号 3) 是否可以使用 .xlsx 输出文件而不是 .csv 文件
【问题讨论】:
【参考方案1】:1) 可以使用-Delimiter
参数指定分隔符:
Import-Csv test.csv -Delimiter ';'
2) 使用您已经使用的-replace '"'
。
3) 你需要一个框架 // 应用程序。
【讨论】:
@Clijsters 3) 没有错。 PSExcel 也在使用 dll。 对于 -replace 实际上如我的问题所示,我认为这将是解决方案,但是一旦我添加了脚本,我就没有错误,但在指定的输出文件中没有结果 @MartinBrandl 但不是框架或外部应用程序。它只是实现了 EPPlus。 @Clijsters 它仍然是一个库。如果您有使用 plain PowerShell 的解决方案,我将编辑我的答案。以上是关于根据一列的值拆分 csv 文件的主要内容,如果未能解决你的问题,请参考以下文章