5

次のような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
4

1 に答える 1

12

次のようなことを試してください:

$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()
于 2013-06-05T11:27:09.947 に答える