由于公司政策,我对编程工具的访问权限有限。
我使用PowerShell转换文件夹中包含的多个Excel文件,将这些文件转换为CSV,然后将这些CSV合并在一起。
到目前为止,我已经创建了我的脚本,以便它转换所有excel文件并创建另一个组合这些CSV并将其输出为1 CSV的部分
我的问题:
输出CSV不会将类似的标题组合在一起,实质上我创建的输出CSV是无用的。
我有8个带有以下标题的CSV
INPUT:(CSVs)
输出:
带有以下标题的1 CSV:
Grantee, Role, Admin, Delegator, Default, Common
输出文件中有重复项, 我不知道如何处理没有“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。 / p>
答案 0 :(得分:0)
使用Import-Csv
和Export-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文件中的值将为空