【问题标题】:Import Excel, Export CSV with PowerShell使用 PowerShell 导入 Excel、导出 CSV
【发布时间】:2016-10-28 03:25:44
【问题描述】:

由于限制,我需要使用 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教程修改的脚本。

   $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%

【问题讨论】:

    标签: excel powershell csv


    【解决方案1】:

    编辑:

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

    【讨论】:

    • 您好,谢谢您的提示。我的最小化版本实际上更接近。不,导入的文件是 Excel 文件。我现在收到大量警告“你不能在空值表达式上调用方法”然后〜10“找不到属性 Colum1。我基本上只有你的缩短版本,但我的列。
    • @DNorthrup 听起来您在脚本中没有与 CSV 文件匹配的列名。名称中有空格吗?例如它们是以空格开头还是结尾?
    • 其中2个中间有一个空格,但因为我认为可能是那个,所以我删除了它。我还删除了我告诉它忽略的无意义的标题,看看是否有帮助。
    • @DNorthrup "a,b,c`n1,2,3`n4,5,6" | ConvertFrom-Csv | % {$_.b = 7; $_} 演示了它的工作原理。我只能建议您使用 CSV 顶部几行的实际复制/粘贴来编辑您的原始问题,希望有人能确切地看到发生了什么。
    • 那是真的 - 很公平。我用导入的确切样本更新了原始帖子。由于默认情况下它是 Excel,它们都会有双引号 - 但是,当我将引号放入更新时,它似乎完全破坏了格式。
    猜你喜欢
    • 1970-01-01
    • 2020-03-27
    • 1970-01-01
    • 2013-07-15
    • 2015-02-15
    • 1970-01-01
    • 1970-01-01
    • 2021-05-25
    • 2017-09-26
    相关资源
    最近更新 更多