Как заставить PowerShell удалить целые строки для всех файлов .xls в папке? - PullRequest
0 голосов
/ 18 декабря 2018

У меня есть файлы .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)
...