PowershellでExcelを操作してみます。
今回は、単純にExcelファイルを開き、セルの1つに値を書き込むサンプルを作成します。
今回のソースコードは以下のようになります。
# Excelを開始する。
$excel = New-Object -ComObject Excel.Application;
$book = $excel.Workbooks.Open("読み込みファイルパス");
# テストで文字を入れ込んでみる。
$book.Sheets[1].Cells.Item(1, 1).Value = "テスト入力値";
# 別名保存する。
$book.SaveAs("出力ファイルパス");
# オブジェクトの解放
[System.Runtime.InteropServices.Marshal]::ReleaseComObject($book);
$excel.Quit();
[System.Runtime.InteropServices.Marshal]::ReleaseComObject($excel);
Excel.Applicationオブジェクトの生成は、Add-Typeでアセンブリロードするのではなく、New-Objectに-ComObject引数を付けて行います。
難点として、System.XXXX名前空間のようにオートコンプリートが効かないので、クラスやメソッド、プロパティ等を自力でタイプする必要があります。
オブジェクト解放については、C#と同様の方法で実装してみました。