Преобразование нескольких xls в csv с помощью powershell
Я пытаюсь преобразовать несколько файлов excel (xls) в csv, который находится в папке с помощью powershell.
Я могу преобразовать один файл, но вам нужна помощь в преобразовании нескольких файлов в папку. Но нужно посоветовать, как конвертировать несколько файлов.
$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()
- В чем причина ошибки: неожиданный «$» в «$» и как преобразовать файл txt в файл xlsx в R?
- Я хочу скопировать 2 листа Excel в одно и то же время в новую книгу
- Вставьте сложную формулу Excel, используя Powershell
- Powershell - добавить 1 к строке
- Скрипт Powershell для отображения установленных обновлений
- Вызов сценария powershell из VBA работает на одном ПК, но не в другом
- Экспорт форматирования листа Excel в команды Powershell (или VBA)
- Excel (файл .xls) - 4 листа невозможно?
- Извлечь разницу в изменениях TFS для Excel
- сценарий для получения определенного значения реестра с удаленных компьютеров
- Вставить в Excel из Powershell
- Не удалось получить доступ к рабочему слою Excel через powershell
- Прочитайте содержимое файла Excel с помощью PowerShell и сохраните его в базе данных SQL Server
Вы можете просто обернуть его в цикл, который выполняет итерацию по всем файлам и изменит расширение 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() }
Есть предостережения с этим непроверенным кодом, но он должен помочь обернуть вокруг вашей проблемы
$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()
Возьмите линии между первым и последним и постройте цикл. Используйте Get-ChildItem
для захвата ваших xls-файлов, а затем создайте новое имя, заменив расширение, если FullName
файла