使用PowerShell将多个xls转换为csv
我试图将多个Excel文件(xls)转换为位于使用PowerShell的文件夹中的csv。
我可以转换一个文件,但需要帮助转换文件夹中的多个文件。 但需要build议如何转换多个文件。
$ExcelWB = new-object -comobject excel.application $Workbook = $ExcelWB.Workbooks.Open(c:\temp\temp.xls) $Workbook.SaveAs("c:\temp\temp.csv",6) $Workbook.Close($false) $ExcelWB.quit()
你可以把它包装在遍历所有文件的循环中,并将xls
扩展名更改为csv
:
foreach($file in (Get-ChildItem "C:\temp")) { $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() }
有这个未经testing的代码的警告,但它应该帮助包围你的问题
$ExcelWB = new-object -comobject excel.application Get-ChildItem -Path c:\folder -Filter "*.xls" | ForEach-Object{ $Workbook = $ExcelWB.Workbooks.Open($_.Fullname) $newName = ($_.Fullname).Replace($_.Extension,".csv") $Workbook.SaveAs($newName,6) $Workbook.Close($false) } $ExcelWB.quit()
取第一个和最后一个之间的线,并build立一个循环。 使用Get-ChildItem
获取您的xls文件,然后通过replace扩展名(如果文件的FullName
来构build一个新名称