2012年2月17日金曜日

◆Excel無しにExcelファイルを作る

サーバーでExcelファイルを作る必要があり、先日のPowerShell Advent Calendar 2011 : ATNDPowerShell で Open XML ドキュメントを作成する - Hello Another World!が紹介されていましたので使わせて頂きました。

<PowerTools for Open XML>

  1. 環境
    • 以下から「Open XML SDK 2.0 for Microsoft Office」をインストール。とりあえず、「OpenXMLSDKv2.msi」だけインストールすれば良さそう。
    • 続いて、以下から「PowerTools for Open XML」をダウンロード。
      PowerTools for Open XML
    • 解凍するとC#のソリューションが出てくるのでVisualStudioでビルドする。
    • 「C:\Windows\System32\WindowsPowerShell\v1.0\Modules」に「OpenXmlPowerTools」フォルダーを作りビルドして出来上がった「OpenXmlPowerTools.dll」と「OpenXmlPowerTools.dll-Help.xml」を入れる。
      コマンドラインで「ipmo OpenXmlPowerTools」と打ってエラーにならなければ環境はOK
  2. 使い方
    • 以下のような感じで「Export-OpenXmlSpreadsheet」にオブジェクトをパイプしてやれば簡単にExcelファイルの出来上がり。
      ps | Export-OpenXmlSpreadsheet -OutputPath .\test.xlsx

実に簡単に使える。
非常に素晴らしい。

しかし、これ以降がよく判らない。
単純にこれまでCSVに出力していたものをExcelに変更するだけであればこれで問題ないのだが、せっかくExcelなので多少は書式を設定したり計算式を入れたりしたくなるのが人情というもの。
なんとなく以下のページを見ると、ほとんどがWord用に思えてしまう。
InfoQ: コマンドラインからOfficeドキュメントを生成する

完全に行き詰ってしまったので、ちょっと方向転換して以下のツールを試して見ることとした。
PowerShell で Excel 2007 のシートを操作する - Shigeya Tanabe's blog - Site Home - TechNet Blogs

なんとなくこちらはExcelのVBAライクに使えそうに見える。


<ExcelPackage.dll>

  1. 環境
  2. 使い方
    • dllをロードしておき、VBAと同様に「workbook」オブジェクトや「worksheets」オブジェクト「Cell」オブジェクトなどなんとなく見慣れたオブジェクトを使えば良さそう。
      田辺さんのサンプルをそのまま掲載しておきます。
      image

プロパティとかを見ると色々出来そうなので、あとでもう少し本格的に使ってみようと思います。

0 件のコメント:

コメントを投稿