У меня есть файлы .xls в папке, и я хотел бы отформатировать каждый файл с помощью PowerShell следующим образом:
- удалить строку 1 и сдвинуть ячейки вверх
- удалить строку 2 и снова сместить ячейки вверх
- , удалить строку 2 и сместить ячейки вверх
- наконец, в последний раз, удалить строку 2 и сместить ячейки вверх
По сути, я удаляю строку 1, а затем удаляю строку 2 трижды.Я хотел бы сохранить каждый файл с оригинальным именем файла, закрыть и выйти.
Вот что у меня есть:
Name Time in out
Miami 07:00 50 100
И это то, что я хотел бы:
Name Time in out
Miami 07:00 50 100
Вот правильный сценарий [после отличных отзывов от других]:
$excel = New-Object -ComObject "Excel.Application"
$excel.DisplayAlerts = $false
$excel.Visible = $false
$localPath = (Get-Location).ToString()
foreach ($file in Get-ChildItem *.xls) {
$wb = $excel.Workbooks.Open($file.FullName)
$wb.WorkSheets.Item(1).Range("A3:A5").EntireRow.Delete() # deletes Rows 3,4,5
$wb.WorkSheets.Item(1).Range("A1").EntireRow.Delete() # deletes Row 1
$wb.SaveAs($localPath + "\" + $file.Name)
$wb.Close($true)
}
$excel.Quit()
[void][Runtime.Interopservices.Marshal]::ReleaseComObject($excel)