使用powershell将多个xls转换为csv

Say*_*med 7 csv excel powershell

我正在尝试将多个excel文件(xls)转换为使用PowerShell位于文件夹中的csv.

我可以转换单个文件,但需要帮助转换文件夹中的多个文件.但需要建议如何转换多个文件.

$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()
Run Code Online (Sandbox Code Playgroud)

arc*_*444 14

您可以将其包装在循环中,该循环遍历所有文件并将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()

}
Run Code Online (Sandbox Code Playgroud)


Mat*_*att 7

这个未经测试的代码有一些警告,但它应该有助于解决您的问题

$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()
Run Code Online (Sandbox Code Playgroud)

取第一个和最后一个之间的线并构建一个循环.使用Get-ChildItem抓取您的XLS文件,然后如果更换扩展建立一个新名称FullName的文件