PowerShell で Open XML ドキュメントを作成する

この投稿は PowerShell Advent Calandar 2011 の15日目の記事です。

前回の投稿 PowerShell でインストール済みのソフトウェアを調査する では、Windows にインストールされているソフトウェアのリストを PowerShell を利用して CSV 形式のファイルへ出力をしました。

今回は、処理の結果を Office Open XML 形式のドキュメントに出力する方法を紹介します。

準備

PowerTools for Open XML を利用すると、Open XML 形式のドキュメントを PowerShell から簡単に扱うことができます。

PowerTools for Open XML は .NET のソースコードとして配布されるため、バイナリーを得るために各自でコンパイルを行う必要があります。

  1. Open XML SDK 2.0 for Microsoft Office をインストール
    PowerTools for Open XML は Open XML SDK 2.0 をベースに構築されるため、予めこの SDK をインストールしておく必要があります。
  2. PowerTools for Open XML をダウンロード
  3. PowerTools for Open XML をコンパイル
  4. System32\WindowsPowerShell\v1.0\Modules フォルダーに “OpenXmlPowerTools” フォルダーを作成
    1
  5. コンパイルして出来上がった “OpenXmlPowerTools.dll” と “OpenXmlPowerTools.dll-Help.xml” を 4. で作成した “OpenXmlPowerTools” フォルダーにコピー
    3
  6. (これが初めての外部コマンドレットの実行であれば)PowerTools for Open XML が提供するコマンドレットの実行を許可するよう Set-ExecutionPolicy Unrestricted を実行
    2
  7. PowerTools for Open XML のモジュールをロードするため Import-Module OpenXmlPowerTools を実行
    4

コード例

Get-WmiObject -Class Win32_product –ComputerName “PC5” | Select-Object Name, Vendor | Export-OpenXmlSpreadsheet -OutputPath c:\InstalledSoftwareList.xlsx

5

解説

Get-WmiObject -Class Win32_product –ComputerName “PC5” | Select-Object Name, Vendor

この部分の解説は前回の記事 PowerShell でインストール済みのソフトウェアを調査する をご参照ください。

Export-OpenXmlSpreadsheet -OutputPath c:\InstalledSoftwareList.xlsx

PowerTools for Open XML が提供する Export-OpenXmlSpreadsheet コマンドレットにより、渡されたプロパティをスプレッドシート、つまり Excel 形式で出力します。
–OutputPath オプションで出力パスを指定できます。

8

出力されたファイルの拡張子を .zip に変更して内部を調査してみると、Open XML 形式となっていることを確認できます。

9

以上です。

Published 木, 12 15 2011 21:54 by Ryosuke Uemoto