Мне нужно обрабатывать приходящие excel-файлы. Заведомо известно что в них значимых столбцов - 35, не больше (строк - тысячи). Но иногда приходят неясно как формированные файлы в которых столбцов несколько сотен. Соответственно хочу удалить все столбцы правее 35-го. Простым перебором - работает, но очень-очень долго:
$wb = $Excel.Workbooks.Open($ExcelFile)
$ws = $wb.Worksheets.Item(1)
$used = $ws.usedRange
$lastrow = $used.SpecialCells(11).row
$lastcol = $used.SpecialCells(11).column
for ($i = $lastcol; $i -ge 35; $i--) {
[void]$ws.Columns($i).Delete()
}
Как то можно это ускорить? Пробовал сделать Range и удалить уже его:
$allcol = $ws.Range($ws.Cells.Item(35, 1), $ws.Cells.Item($lastcol,$lastrow))
$allcol.Delete()
Но столбцы не удаляются почему то. ЧЯДНТ? Может какой то еще вариант есть? Заранее спасибо