导入Excel,使用PowerShell导出CSV

时间:2016-10-28 03:25:45

标签: excel powershell csv

由于限制,我需要使用VB或PowerShell执行此任务。

我的Excel看起来像:

ColumA,              ColumB,ColumC,ColumD,ColumE,ColumF
000|Txt,MoreTxt ,    ColumB,ColumC,ColumD,ColumE,ColumF

我读到了关于import_csv -header的信息,但是我成功地做了。我将在下面发布我的脚本。我期望的出口是:

ColumA, ColumB, ColumC, ColumD, ColumE, ColumF
000,    ColumB, ColumC, ColumD, ColumE, ColumF

只有Colum被修改,我只需要在该管道之前的数字。它也必须保持三位数,所以1变为001等。

这是我根据之前的一些查询和MS Tutorial修改过的脚本。

   $file = import-csv "C:\path\to\my\file\test.csv"
    foreach ($row in $file){
        $tempfile = New-Object psobject -Property @{
            ColumA = $row. 'ListName'.substring(0,2)
            ColumB = $row. 'ColumB'
            ColumC = $row. 'ColumC'
            ColumE = $row. 'ColumE'
            ColumF = $row. 'ColumF'
        }
        $expandfile = @()
        $expandfile += $tempfile | select ColumA, ColumB, ColumC, ColumD,  ColumE, ColumF
    }
PS给了我两个错误,我不喜欢引号中的所有内容(我认为是列名,但我猜不是。而且整个数组也是一个解析错误。本质上是整个脚本。

更新 提供真实的源代码示例。

"Tiam
Name",SiamName,Siam,Ciam,Piam,Liam,Niam,Diam
"002|City, State","City, State - Some text (15092)",1,"3,408",99,"3,408",780,22.89%
"009|City, State","City, State - Some Text (E) (15450)",1,"1,894",81,"1,894",543,28.67%

1 个答案:

答案 0 :(得分:1)

编辑:

$expandfile = Import-Csv "C:\path\to\my\file\test.csv" | ForEach-Object {
    $_."Tiam`r`nName" = $_."Tiam`r`nName".SubString(0,3)
    $_
}