web-dev-qa-db-ja.com

PowershellでExcelシートを読む

以下のスクリプトは、Excelドキュメントのシート名を読み取ります。

各ワークシートの列B(行5から開始-行1〜4は無視される)のすべての内容を抽出してオブジェクトを作成できるようにするにはどうすればよいですか?

例えば。ワークシート1(ロンドン)の列Bに次の値がある場合:

Marleybone
Paddington
Victoria
Hammersmith

ワークシート2(と呼ばれる)ワークシート2の列Cには、次の値があります。

Alverton 
Annesley
Arnold
Askham

それから次のようなオブジェクトを作成したいと思います。

City,Area
London,Marleybone
London,Paddington
London,Victoria
London,Hammersmith
Nottingham,Alverton 
Nottingham,Annesley
Nottingham,Arnold
Nottingham,Askham

これはこれまでのところ私のコードです:

clear all

sheetname = @()

    $Excel=new-object -com Excel.application
    $wb=$Excel.workbooks.open("c:\users\administrator\my_test.xls")
    for ($i=1; $i -le $wb.sheets.count; $i++)
    {
      $sheetname+=$wb.Sheets.Item($i).Name;
    }

$sheetname
12
methuselah

本当にもっとかっこいいものを作る可能性があります!

# Powershell 
$xl = new-object -ComObject excell.application
$doc=$xl.workbooks.open("Filepath")
$doc.Sheets.item(1).rows |
% { ($_.value2 | Select-Object -first 3 | Select-Object -last 2) -join "," }
0
MUY Belgium