【问题标题】:Spliting a csv file based on the value of one column根据一列的值拆分 csv 文件
【发布时间】: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 文件

【问题讨论】:

    标签: powershell csv split xlsx xls


    【解决方案1】:

    1) 可以使用-Delimiter参数指定分隔符:

    Import-Csv test.csv -Delimiter ';'
    

    2) 使用您已经使用的-replace '"'

    3) 你需要一个框架 // 应用程序。

    【讨论】:

    • @Clijsters 3) 没有错。 PSExcel 也在使用 dll。
    • 对于 -replace 实际上如我的问题所示,我认为这将是解决方案,但是一旦我添加了脚本,我就没有错误,但在指定的输出文件中没有结果
    • @MartinBrandl 但不是框架或外部应用程序。它只是实现了 EPPlus。
    • @Clijsters 它仍然是一个库。如果您有使用 plain PowerShell 的解决方案,我将编辑我的答案。
    猜你喜欢
    • 1970-01-01
    • 2015-03-06
    • 2012-04-14
    • 1970-01-01
    • 1970-01-01
    • 2020-05-20
    • 2012-01-14
    • 1970-01-01
    • 2015-01-09
    相关资源
    最近更新 更多