デジタル推進課

KNIME・Excel Macro・Power Automateなど日々の業務で使用できる自動化ツールを中心に書き綴ります

KNIME - Googleドライブ上にあるExcelを読み込み・書き出すには? ~Google Drive Connector / Excel Reader Writer v4.3~

f:id:makkynm:20210403100557p:plain


 

 

はじめに

こんにちは、自動化大好きまっきーです。今回は、Googleドライブ上にあるExcelファイルをKNIMEが直接参照して、読み込む・書き込む方法について解説したいと思います。

これを学ぶことで、わざわざ共有ファイルシステムからデスクトップにダウンロード、実行して、出力したものをもう一度共有ファイルシステムにアップロードというマニュアル作業がなくなります

 

 今回のテーマ ~Google Drive Connector~

今回のキーは、Excel Reader・Excel Writerの設定にあります。

f:id:makkynm:20210403083353p:plain

 今回のテーマ ~Google Drive Connector~

workflowは下記からダウンロードできます。

hub.knime.com

 

覚えてほしいこと

Add Portでポートを作り出す!

 

やりたいこと

グーグルドライブのマイドライブ上に社員表と勤怠表のExcelがアップロードされています。

このファイルをKNIMEで直接読み込んで、KNIME OutputFilesという階層に出力したいと思います。

f:id:makkynm:20210403084141p:plain

やりたいこと

 

事前準備

今回のメイントピックでない内容を先に解説します。

Google API Nodeのインストール

Google Drive Connectorは拡張機能のインストールが必要です。詳しくは下記の記事をご覧ください。

degitalization.hatenablog.jp

 

Google Authentification

Googleの認証Nodeです。詳しい使い方は、下記の記事をご覧ください。

degitalization.hatenablog.jp

今回は下記の認証を使用しています。

f:id:makkynm:20210403085616p:plain

Google Authentification - Google Drive

 

Joiner

 Vlook upさせるNodeです。詳しくは下記の記事をご覧ください。

degitalization.hatenablog.jp

 

Google Drive Connectorの使い方

このNodeは、Google Driveに接続するためのNodeです。このNodeは接続しますよーと宣言しているだけなので、このNodeではファイルを読み込むことはできません。

設定は簡単です。マイドライブを検索する部分だけ気をつければOKです。このNodeは拡張機能のインストールが必要です。

Workflow

f:id:makkynm:20210403085028p:plain

Workflow - Google Drive Connector

Confirm - Google Drive Connector

今回、Outputは特に気にする必要ありません。Google Driveに接続されているという情報のみが表示されています。

重要なのは、このOutputのポートをどこに接続するかという部分です。後ほど解説します。

Configure - Google Drive Connector

設定する項目は1つしかありません。

デフォルトで読み込みたいフォルダのパスを指定します。Browseをクリックすれば、Googleドライブのフォルダを見ながら指定することができます。

f:id:makkynm:20210403090207p:plain

Configure - Google Drive Connector

 

注意点

このNode、1つしか設定がないのにトラップがあります。最初、Working directoryは「/」となっています。この状態でBrowseを押しても何も出てきません(笑)

f:id:makkynm:20210403090858p:plain

注意点 - Google Drive Connector

解決策として、一度、「/My Drive」と打ち込んであげてください。すると、見えるようになります。

f:id:makkynm:20210403091012p:plain

解決策 - Google Drive Connector

 

Google Drive ConnectorとExcel Readerの繋ぎ方

さて、ここで一つの難題にぶつかります。繋ぐポートがない、、、と。

こんな時は、ポートを増やしてあげましょう。

f:id:makkynm:20210403083353p:plain

繋ぐポートがない
Excel Reader / Excel Writer - ポートの増やし方

少し疑問に思ったことがあるかもしれません、Excel ReaderやExcel Writer の左下にある...はなんなのか?やっとこいつの出番です。「Add File System Connection port」というボタンを押してみましょう。すると、足りなかったポートが増えてくれます。

f:id:makkynm:20210403091959p:plain

Excel Reader - ポートの増やし方

f:id:makkynm:20210403092048p:plain

Excel Reader - ポートの増やし方

Excel Writerの場合も同様です。「Add ports」から、「File System Connection」を推してあげてください。

f:id:makkynm:20210403092147p:plain

Excel Writer - ポートの増やし方

 

Excel Reader v4.3の使い方

ExcelのNodeは一番最初に解説しましたが、バージョンが上がって仕様変更がされています。今回は、Excel Reader v4.3を使用して解説したいと思います。

今回のバージョンアップで、フォルダにある複数ファイルを取り込むのがLoopを使わずともできるようになったりしていますが、その部分は解説しません。

Workflow - Excel Reader

Google Drive Connectorから直接繋いであげましょう。

f:id:makkynm:20210403092542p:plain

Workflow - Excel Reader

Configure - Excel Reader

こちらがExcel ReaderのConfigureです。バージョンが上がったことにより、基本ファイルパスを指定するだけであとはデフォルト設定で実行できるようになりました!

f:id:makkynm:20210403092638p:plain

Configure - Excel Reader
Step1 - Input Location ファイル指定

ここで、今回読み込みたいExcelのあるGoogle Driveのファイルパスを指定します。

Google Driveのポートをすでに接続しているので、Read from の部分は勝手に指定されていると思います。

また、1ファイルを読み込みたいので、ModeはFileになりますね。

あとは、Browseから読み込みたいExcelのあるファイルパスを指定してあげましょう。

f:id:makkynm:20210403092952p:plain

Step1 - Input Location
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も繋ぎます。

f:id:makkynm:20210403094410p:plain

Workflow - Excel Writer

 

Confirm - Excel Writer

このNodeを実行すると、直接Google Driveにアップロードされます。

f:id:makkynm:20210403094732p:plain

Confirm - Excel Writer

 

Configure - Excel Writer

下記がExcel Writerの設定です。こちらもUpdateがあって、出力先を指定するくらいで出力できるようになりました。

f:id:makkynm:20210403094810p:plain

Configure - Excel Writer
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のいい所だと思います。

 

degitalization.hatenablog.jp

degitalization.hatenablog.jp

 

 

おわりに

お疲れ様でした!Excel Readerの...の謎について謎が解けましたか?

ダウンロードしてアップロードする作業って、意外と時間かかるのでできる限り自動化したい所ですよね。Google Driveを企業で使用しているところなんて特に使いやすいのではないのでしょうか。質問・コメント等あったら、ぜひコメントいただけると励みになります。ではまた!

 

 

 

KNIMEに関する本

KNIMEに関する日本語の本って今これくらいしかないと思うんですよね、、

本がいいなーと言う人はぜひ試してみてください。

 

参考リンク