Как прочитать целую колонку в Powershell

Я пытаюсь написать сценарий powershell, который будет выводить содержимое столбца внутри электронной таблицы в текстовый файл. Я не знаю powershell, но я нашел и разобрался, как получить ячейку, теперь мне нужен весь столбец. Рассматриваемая электронная таблица имеет более 8 тысяч строк. Вот что у меня есть до сих пор:

$SMTPApprovedXLS = "c:\temp\SMTP\SMTPAPPLIST.XLS"
$SheetName = "Active"
$objExcel = New-Object -ComObject Excel.Application
$objExcel.Visible = $False
$Workbook = $objExcel.Workbooks.open($SMTPApprovedXLS)
$Worksheet = $Workbook.sheets.item($SheetName)
$startRow = 4

[pscustomobject][ordered]@{
    ApprovedIPs = $Worksheet.Cells.Item(4,$startRow).Value()
}

Столбец "D" и должен начинаться в строке 4. Спасибо заранее.


person LooneyTeck    schedule 17.09.2015    source источник


Ответы (1)


Все, что вам нужно сделать, это использовать цикл, чтобы просмотреть все записи и зафиксировать данные. Попробуй это:

$SMTPApprovedXLS = "c:\temp\SMTP\SMTPAPPLIST.XLS"
$SheetName = "Active"
$objExcel = New-Object -ComObject Excel.Application
$objExcel.Visible = $False
$Workbook = $objExcel.Workbooks.open($SMTPApprovedXLS)
$Worksheet = $Workbook.sheets.item($SheetName)
$startRow = 4

$ApprovedIPs = @()

$count = $Worksheet.Cells.Item(65536,4).End(-4162)

for($startRow=4; $startRow -le $count.row; $startRow++)
{
 $ApprovedIPs += $Worksheet.Cells.Item($startRow, 4).Value()
}

$ApprovedIPs | Out-File C:\ApprovedIPs.txt

Обратите внимание, что последняя строка создает текстовый файл с нужными данными, где C:\ — это каталог, а ApprovedIPs — это имя файла. Вы можете просто заменить их на желаемое местоположение и имя файла.

person Gnarlywhale    schedule 17.09.2015
comment
Работал как шарм. Спасибо вам за помощь! - person LooneyTeck; 17.09.2015