Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel Powershell脚本,用于将多个CSV与一些共享头合并_Excel_Powershell_Csv_Merge - Fatal编程技术网

Excel Powershell脚本,用于将多个CSV与一些共享头合并

Excel Powershell脚本,用于将多个CSV与一些共享头合并,excel,powershell,csv,merge,Excel,Powershell,Csv,Merge,由于公司政策,我对编程工具的使用受到限制 我正在使用PowerShell转换文件夹中包含的几个Excel文件,以将这些文件转换为CSV,然后将这些CSV合并在一起 到目前为止,我已经创建了我的脚本,以便它转换所有excel文件,并创建另一个部分,将这些CSV组合起来,并将其输出为1个CSV 我的问题: 输出CSV不会将类似的标题组合在一起,实际上,我创建的输出CSV是无用的 我有8个带有以下标题的CSV 输入:(CSV) 受让人、角色、管理员、委托人、默认值、通用 受让人、角色、管理员、委托人、

由于公司政策,我对编程工具的使用受到限制

我正在使用PowerShell转换文件夹中包含的几个Excel文件,以将这些文件转换为CSV,然后将这些CSV合并在一起

到目前为止,我已经创建了我的脚本,以便它转换所有excel文件,并创建另一个部分,将这些CSV组合起来,并将其输出为1个CSV

我的问题:

输出CSV不会将类似的标题组合在一起,实际上,我创建的输出CSV是无用的

我有8个带有以下标题的CSV

输入:(CSV)

  • 受让人、角色、管理员、委托人、默认值、通用
  • 受让人、角色、管理员、委托人、默认值、通用
  • 受让人、角色、管理员、委托人、默认值、通用
  • 受让人、角色、管理员、委托人、默认值、通用
  • 被授权人、角色、管理员、默认值
  • 被授权人、角色、管理员、默认值
  • 被授权人、角色、管理员、默认值
  • 被授权人、角色、管理员、默认值
  • 输出:

    1个带有以下标题的CSV:

    被授权人、角色、管理员、授权人、默认值、通用值

    输出文件中可以有重复项, 我不知道如何处理没有“Delegator”和“Common”头的4个CSV的空值

    这就是我到目前为止所做的:

    foreach($file in (Get-ChildItem "C:\Users\ZZZZZZ\Desktop\PROJECT"))
    {
        $newname = $file.FullName -replace '\.xls$', '.csv'
        $ExcelWB = new-object -comobject excel.application
        $Workbook = $ExcelWB.Workbooks.Open($file.FullName)
        $Workbook.SaveAS($newname,6)
        $Workbook.Close($false)
        $ExcelWB.quit()
    }
    
    #combines all csv 
    #combines them but does not line up the shared headers and also inserts the headers of the new csv into the sheet, would like to only have 1 header in the output
    
    $files = Get-ChildItem C:\Users\ZZZZZZ\Desktop\Project\*.csv 
    Get-Content $files | Set-Content C:\Users\ZZZZZZ\Desktop\Project\MERGED.csv
    

    我真的很感谢任何人能给我的帮助,我做了大量的研究来了解“如何安装powershell”,“如何“编写”脚本”,这是我第一次使用powershell。

    使用
    导入Csv
    导出Csv
    cmdlet:

    Get-ChildItem C:\Users\ZZZZZZ\Desktop\Project\*.csv |ForEach-Object {
      Import-Csv $_.FullName
    } |Select-Object Grantee,Role,Admin,Delegator,Default,Common |Export-Csv C:\Users\ZZZZZZ\Desktop\Project\MERGED.csv -NoTypeInformation
    

    对于没有
    Delegator
    Common
    标题的文件,合并的CSV文件中的值将为空

    感谢Mathias的帮助,我认为我们朝着正确的方向前进了,但它似乎创建了一个永不结束的CSV。进程一直运行,直到我终止它。