PowerShell エクセルの特定シートの中身を全部抜く
エクセルの指定したシートの中身を全部抜き取るスクリプトです
エクセルを閉じた状態でないと上手く動かないです。
以前の記事で作ったエクセルファイルからデータを抜き出すような動作をします
class ExcelReader {
[string]$FileName
[System.Collections.ArrayList]$Sheets
ExcelReader([string]$fileName) {
$this.FileName = $fileName
$this.Sheets = New-Object System.Collections.ArrayList
$this.LoadSheets()
}
# シート一覧を読み込む
[void]LoadSheets() {
$excel = New-Object -ComObject Excel.Application
$workbook = $excel.Workbooks.Open($this.FileName)
foreach ($sheet in $workbook.Worksheets) {
$this.Sheets.Add($sheet.Name) | Out-Null
}
$workbook.Close()
$excel.Quit()
}
# 指定されたシートからデータを取得する
[object[,]]GetData([string]$sheetName) {
$excel = New-Object -ComObject Excel.Application
$workbook = $excel.Workbooks.Open($this.FileName)
$worksheet = $workbook.Worksheets.Item($sheetName)
$range = $worksheet.UsedRange
$data = $range.Value()
$workbook.Close()
$excel.Quit()
return $data
}
}
# Excelファイルからデータを取得する
$reader = New-Object ExcelReader("C:\temp\fruits.xlsx")
$data = $reader.GetData("Sheet1")
# 取得したデータを表示する
$data
他の記事もよろしく