2013-06-05 9 views
3

У меня есть лист Excel следующим образом:Получить количество строк в столбце листа

Id Name Address 
------------------- 
1 t1  Add1 
2   Add2 
3 

Я хочу, чтобы получить количество непустых ячеек в каждом столбце, то есть:

Колонка ID → 3 строки
Имя → 1 ряд
Адрес → 2 строки

Как это сделать в оболочке питания? Я пробовал разные вещи, но они, похоже, не работают.

Я новичок в PowerShell. Есть ли способ получить количество строк для столбца напрямую?

$SheetName = "Sheet1" 
$Excel = New-Object -ComObject "Excel.Application" 

$Workbook = $Excel.workbooks.open($XLSDoc) 
$Sheet = $Workbook.Worksheets.Item($SheetName) 
$objRange = $Sheet.UsedRange 
$RowCount = $objRange.Rows.Count 
$ColumnCount = $objRange.Columns.Count 
Write-Host "RowCount:" $RowCount 
Write-Host "ColumnCount" $ColumnCount 
$Range1 = $Sheet.Range("A1:A5") 
$TestCount = $Range1.Rows.Count 
Write-Host $TestCount 
+2

Не могли бы вы показать, что вы пробовали? Это может помочь другим лучше понять, с какой частью вам нужна помощь. –

ответ

6

попробовать что-то вроде этого:

$xl = New-Object -COM "Excel.Application" 
$xl.Visible = $true 

$wb = $xl.Workbooks.Open("C:\path\to\your.xlsx") 
$ws = $wb.Sheets.Item(1) 

$rows = $ws.UsedRange.Rows.Count 

foreach ($col in "A", "B", "C") { 
    $xl.WorksheetFunction.CountIf($ws.Range($col + "1:" + $col + $rows), "<>") - 1 
} 

$wb.Close() 
$xl.Quit() 
+0

Большое спасибо! Это работает как шарм :). –