Excel Powershell脚本,用于将多个CSV与一些共享头合并
由于公司政策,我对编程工具的使用受到限制 我正在使用PowerShell转换文件夹中包含的几个Excel文件,以将这些文件转换为CSV,然后将这些CSV合并在一起 到目前为止,我已经创建了我的脚本,以便它转换所有excel文件,并创建另一个部分,将这些CSV组合起来,并将其输出为1个CSV 我的问题: 输出CSV不会将类似的标题组合在一起,实际上,我创建的输出CSV是无用的 我有8个带有以下标题的CSV 输入:(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) 受让人、角色、管理员、委托人、默认值、通用 受让人、角色、管理员、委托人、
被授权人、角色、管理员、授权人、默认值、通用值
输出文件中可以有重复项,
我不知道如何处理没有“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。进程一直运行,直到我终止它。