PowerShell を使って、ExcelDataReader で Excel ファイルを読み込む

経緯

お客さまからいただく Excel ファイルを、あるフォーマットにするということを、手作業でちまちまやるのをやめたいので、ちょっとスクリプト書いてます

ググったら、「読み込むだけなら ExcelDataReader が速くていいぞー」「ExcelDataReader は xlsx だけではなくて、xls も読めるぞー」的なことを書いていて、ちょっと触ってみたくなったのです

環境

  • Windows 10 Pro
  • PowerShell 5.1
  • ExcelDataReader 3.6.0
  • ExcelDataReader.DataSet 3.6.0

ライブラリのダウンロード

それぞれ、右メニューにある Download package から nuget パッケージをダウンロードして、拡張子を zip に変えて解凍後、DLL を取り出した

Excel ファイルの準備

サンプルで Excel ファイル (test.xlsx) を作りました

「商品」と「従業員」というシートを作って、それぞれ適当なデータを入れています

Excel データの読み込み

DLL 2 つ、Excel ファイル 1 つ、 PowerShell ファイルをすべて同じディレクトリに置きました

ココまでの状態

データを読み込むところまでコードを書いてみます

AsDataSet メソッドを使うところがちょっと大変でした… (C# の例は腐るほどあったんですがw)

ここまでで、 $data にデータを取得できていますので、データタイプを見てみます

DataSet で返ってきているのがわかります

中を雑にかくにんしてみます

最後にオブジェクトを解放して終わります