- はじめに
- 覚えてほしいこと
- やりたいこと
- 事前準備
- Google Drive Connectorの使い方
- Google Drive ConnectorとExcel Readerの繋ぎ方
- Excel Reader v4.3の使い方
- Excel Writer v4.3の使い方
- ちょっと一言
- おわりに
- KNIMEに関する本
- 参考リンク
はじめに
こんにちは、自動化大好きまっきーです。今回は、Googleドライブ上にあるExcelファイルをKNIMEが直接参照して、読み込む・書き込む方法について解説したいと思います。
これを学ぶことで、わざわざ共有ファイルシステムからデスクトップにダウンロード、実行して、出力したものをもう一度共有ファイルシステムにアップロードというマニュアル作業がなくなります!
今回のテーマ ~Google Drive Connector~
今回のキーは、Excel Reader・Excel Writerの設定にあります。
workflowは下記からダウンロードできます。
覚えてほしいこと
Add Portでポートを作り出す!
やりたいこと
グーグルドライブのマイドライブ上に社員表と勤怠表のExcelがアップロードされています。
このファイルをKNIMEで直接読み込んで、KNIME OutputFilesという階層に出力したいと思います。
事前準備
今回のメイントピックでない内容を先に解説します。
Google Drive Connectorは拡張機能のインストールが必要です。詳しくは下記の記事をご覧ください。
Google Authentification
Googleの認証Nodeです。詳しい使い方は、下記の記事をご覧ください。
今回は下記の認証を使用しています。
Joiner
Vlook upさせるNodeです。詳しくは下記の記事をご覧ください。
Google Drive Connectorの使い方
このNodeは、Google Driveに接続するためのNodeです。このNodeは接続しますよーと宣言しているだけなので、このNodeではファイルを読み込むことはできません。
設定は簡単です。マイドライブを検索する部分だけ気をつければOKです。このNodeは拡張機能のインストールが必要です。
Workflow
Confirm - Google Drive Connector
今回、Outputは特に気にする必要ありません。Google Driveに接続されているという情報のみが表示されています。
重要なのは、このOutputのポートをどこに接続するかという部分です。後ほど解説します。
Configure - Google Drive Connector
設定する項目は1つしかありません。
デフォルトで読み込みたいフォルダのパスを指定します。Browseをクリックすれば、Googleドライブのフォルダを見ながら指定することができます。
注意点
このNode、1つしか設定がないのにトラップがあります。最初、Working directoryは「/」となっています。この状態でBrowseを押しても何も出てきません(笑)
解決策として、一度、「/My Drive」と打ち込んであげてください。すると、見えるようになります。
Google Drive ConnectorとExcel Readerの繋ぎ方
さて、ここで一つの難題にぶつかります。繋ぐポートがない、、、と。
こんな時は、ポートを増やしてあげましょう。
Excel Reader / Excel Writer - ポートの増やし方
少し疑問に思ったことがあるかもしれません、Excel ReaderやExcel Writer の左下にある...はなんなのか?やっとこいつの出番です。「Add File System Connection port」というボタンを押してみましょう。すると、足りなかったポートが増えてくれます。
Excel Writerの場合も同様です。「Add ports」から、「File System Connection」を推してあげてください。
Excel Reader v4.3の使い方
ExcelのNodeは一番最初に解説しましたが、バージョンが上がって仕様変更がされています。今回は、Excel Reader v4.3を使用して解説したいと思います。
今回のバージョンアップで、フォルダにある複数ファイルを取り込むのがLoopを使わずともできるようになったりしていますが、その部分は解説しません。
Workflow - Excel Reader
Google Drive Connectorから直接繋いであげましょう。
Configure - Excel Reader
こちらがExcel ReaderのConfigureです。バージョンが上がったことにより、基本ファイルパスを指定するだけであとはデフォルト設定で実行できるようになりました!
Step1 - Input Location ファイル指定
ここで、今回読み込みたいExcelのあるGoogle Driveのファイルパスを指定します。
Google Driveのポートをすでに接続しているので、Read from の部分は勝手に指定されていると思います。
また、1ファイルを読み込みたいので、ModeはFileになりますね。
あとは、Browseから読み込みたいExcelのあるファイルパスを指定してあげましょう。
Step2~5 - その他の設定
Excel Readerはバージョンアップ以降、かなり設定しやすくなったと思っています。簡単に機能をご紹介します。基本は以前のバージョンと変わらないです。
Step2 - Sheet Selection シート名を指定
シート名を指定する部分です。今までは、最初のシートを読み込むという設定か、シート名を指定する方法でしたが、新しいバージョンから何番目にあるシートを読み込むかという方法も加わりました。
これにより、シート名が変わる場合も対応できるようになりました。
もちろんシート名をFlow variableで設定すれば、以前のバージョンでもシート名が変わっても対応できます。
Column Header - 列ヘッダの指定
以前はデフォルトで設定されていなかったので、いちいち指定する必要がありました。新しいバージョンでは、列ヘッダがデフォルトである設定になっています。
もし列ヘッダがない場合はチェックを外してくださいね。
RowID - 行ヘッダの指定
こちらは以前と変わらないです。デフォルトで行ヘッダがないということになっています。
行ヘッダがある場合ってあまりないと思うので、基本触らなくていいと思います。
Sheet Area - 読み込み範囲の指定
こちらも以前と変わりません。デフォルトではファイル全体を読み込むことになっています。もし、この部分だけ読み込みたいということがあるのであればここから指定してください。
Excel Writer v4.3の使い方
Excel Writerもバージョンアップにより、仕様変更がありました。
Workflow - Excel Writer
Google Drive Connectorに繋ぐと同時に、出力したいTableも繋ぎます。
Confirm - Excel Writer
このNodeを実行すると、直接Google Driveにアップロードされます。
Configure - Excel Writer
下記がExcel Writerの設定です。こちらもUpdateがあって、出力先を指定するくらいで出力できるようになりました。
Step1 - File format & output location 出力先指定
まず、Excelのファイル形式をConfigureの画面から指定できるようになりました。XLSXとXLSのどちらかです。基本はデフォルトのXLSXの方でOKです。
Write toは、Google Driveのポートと接続しているので、すでに指定されています。
最後にBrowseから、出力したいファイルパスを指定しましょう。
Write option - 出力オプション
そのほかに2つオプションがあります。
Create missing folders - フォルダがなかった場合作る
もし、フォルダがなかった場合(例えばKNIME OutputFilesというフォルダがまだ存在していなかった場合)実行時に一緒に作ってくれるオプションです。
If exists.. - ファイルがすでに存在する場合
これは以前と変わらないですね。
Overwrite:上書き保存
Append:新規ファイルとして作成
fail:エラーとして実行しない
Step2~4 - その他の設定
その他は特に以前のバージョンと変化がないので省略しようと思います。
唯一Sheet名を指定する部分が複数指定できるようになりましたね。
以前までは、Excel Writerは1Node1Sheetだったんですが、今回のUpdateで複数シート一気に書き出せるような設定になりました。
ちょっと一言
KNIMEの処理は全て同じものでOK!
最初は、デスクトップ上にあるExcelを、そして以前はGoogle Spread Sheetを、今回はGoogle Drive上にあるExcelを使って処理を行いました。
みなさん、お気づきかもしれませんが、これら全て処理をしているNodeは同じです。
つまり、Inputファイルがどんな形式であれ、KNIMEに取り込んでしまえばあとは全て同じ作業として扱えるということです。KNIMEのNodeはコピペできるので、ファイルをCSVで欲しいのだけど、、と言われても簡単に対応できますよね!
これがKNIMEのいい所だと思います。
おわりに
お疲れ様でした!Excel Readerの...の謎について謎が解けましたか?
ダウンロードしてアップロードする作業って、意外と時間かかるのでできる限り自動化したい所ですよね。Google Driveを企業で使用しているところなんて特に使いやすいのではないのでしょうか。質問・コメント等あったら、ぜひコメントいただけると励みになります。ではまた!
KNIMEに関する本
KNIMEに関する日本語の本って今これくらいしかないと思うんですよね、、
本がいいなーと言う人はぜひ試してみてください。
参考リンク
- KNIME公式Node Pit(英語):
Google Drive Connection — NodePit
- KNIME Example Workflow(英語):
Google Drive Connector – KNIME Hub