Convert multiple xls to csv using powershell

There are caveats with this untested code but it should help wrap your head around your issue

$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()

Take the lines in between the first and last and build a loop. Use Get-ChildItem to grab your xls files and then build a new name by replacing the extension if the FullName of the file


You can just wrap it in a loop that iterates over all the files and change the xls extension to 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()

}