Pentaho(ペンタホ)のETLツール、Kettle(ケトル)のPan(パン)には、Excel inputという、エクセルのデータを読み込む事ができるトランスフォーメーションステップがあります。
参考:Excel Input (XLS, XLSX) including OpenOffice Workbooks (ODS)
Excel inputの使い方
Microsoft Excel input(Excel入力)ステップでは、エクセルファイルとオープンオフィスのファイルを読み込む事ができます。
Step1:全般タブでファイル形式を選択する
エクセルといっても、拡張子が".xls"と".xlsx"の2種類あります。まずはじめに”全般”タブでどちらの形式のエクセルファイルをインプットするのか選択します。この選択をはじめにしておかないと、途中でフリーズしたりしますので注意して下さい。
- ヘッダーを含む(Header)…読み込むシートのヘッダー行を含めるか、含めないかを選択します。
- 空のレコードを削除(No empty rows)…抽出するデータの中に空のレコードが不要な場合はONにします。
- 空白のレコードで処理を停止する(Stop on empty row)…空のレコードがあった場合に処理を停止したい場合はONにします。
- 最大レコード数(Limit)…読み込む行数を設定します。0は全ての行数を読み込む事を意味します。
- 文字コード(Encoding)…文字のエンコーディング特定します。
- スプレッドシートタイプ(エンジン) (Spread sheet type (engine))…データを抽出する表計算ソフトを選択します。
・Excel97-2003:初期設定されています。
・Excel 2007 XLSX:拡張子が.xlsxのエクセルの場合に使用します。
・Open Ofiice ODS:オープンオフィスのファイルを読み込む場合に使用します。
Step2:ファイルタブでインポートするファイルを選択する。
ファイルタブに戻り、インポートするエクセルファイルを”参照"ボタンを押して選択します。そして"追加"ボタンを押して、ファイル名のリストに加えます。
Step3:インポートするシートとセルの範囲を指定する。
シートタブで、"シート取得"ボタンを押し、読み込むシートを選択します。そして、選択したシートから読み込む行(開始レコード)と列(開始列)の指定をします。1行目が0、A列が0となっていますので注意が必要です。そして、全般タブで"ヘッダーを含む"チェックボックスをONにすると、1行目はヘッダー行として見られ、2行目が0となりますのでさらに注意が必要です。
例えば次のようなエクセルシートを読み込むとします。
全般タブの"ヘッダー行を含む"のチェックボックスをOFFにして、開始レコード2、開始列2にすると、プレビュー結果は次のようになります。
全般タブの"ヘッダー行を含む"のチェックボックスをONにして、開始レコード2、開始列2にすると、プレビュー結果は次のようになります。
Step4:フィールドタブの設定
フィールドタブでは、エクセルファイルから読み込んだフィールドのフィールド名やデータタイプ(型)を予め指定しておきます。
オプション:追加出力フィールドタブの設定
オプション指定で、追加出力フィールドタブの設定を行うと、ファイル名などが取得できます。