フォルダー内にあるエクセルに保存されているデータをPowerShellで取得します。
これはExcelで作られた定型フォームに保存されているデータを取得する場合に便利です。

# 検索先フォルダー
$fpath  = “D:\検索先フォルダー\*”
# Applicationオブジェクト作成
$xls = New-Object -ComObject Excel.Application# Excel 非表示
$xls.visible = $false

# Excel ファイル名取得
$FullName = get-childitem $fpath -include *.xls,*.xlsx
$OFile = “”

# ファイル数分ループ
foreach ($f in $FullName){
# ブックオープン
$books = $xls.Workbooks.Open($f,0,$true)

# ファイル名とシート名表示
write-Host $f.name
foreach ($s in $books.sheets){
write-Host $s.name
$sheet = $books.Worksheets.Item($s.name)

#A1~J10セルのテキスト情報を取得
for($j=1; $j -lt 11; $j++){
for($i=1; $i -lt 11; $i++){
$OFile += $sheet.cells.item($j,$i).text + “,”
}
}
write-Host $OFile
}
write-Host “”
$books.Close();
}

Remove-Variable books,FullName,f,s,sheet,OFile

$xls.Quit()
Remove-Variable xls
[GC]::Collect()

広告