【RPA発展】UiPathの使い方(10)~GSuite Activityでスプレッドシートのデータを取得

RPAの発展として、UiPathの実践的な使い方を紹介していきます。今回は、GSuite ActivityのRead Rangeを使用して、Googleスプレッドシートのデータを取得(読み込み)したいと思います。Web APIの仕組みを活用します。

HTTPリクエストを使用して、スプレッドシートのデータを取得する方法は、こちらの記事をご参考ください。JSONデータの処理方法も説明しています。

GSuite.Activitiesパッケージ

【Step.1】UiPathを起動

先ずは、PCにインストールしているUiPathを起動して、空のプロジェクト(Blank)を作成します。

create project

【Step.2】GSuite.Activitiesパッケージのインストール

(※既にインストール済みの場合は省略可)

UiPathでGoogleのスプレッドシートを操作するためには、GSuite.Activitiesパッケージをインストールします。「Manage Packages」のボタンをクリックします。

manage packages

別ウィンドウで開かれた設定画面の左メニューの「Official」をクリックして選択します。次に、検索窓に「gsuite」と入力します。検索結果欄に表示された「UiPath.GSuite.Activities」をクリックして選択します。

install package

右メニューの「install」ボタンをクリックしてパッケージをインストールします。最後に、「Save」ボタンを押して完了です。なお、Saveの際に、ライセンス確認がありますので、一読してから同意しましょう。

スプレッドシートのデータを取得

【Step.3】スプレッドシートの作成

スプレッドシートを新規作成し、下記のようなテーブルデータを準備します。

create spreadsheet

【Step.4】Web APIの設定

GSuite.Activitiesを使用して、スプレッドシートのデータを取得するためには、事前にスプレッドシートのWeb APIを設定しておく必要があります。APIの設定は、Google Cloud Platform(GCP)から行います。

詳細は割愛しますが、下記の手順でWeb APIの設定を行います。

  1. GCPのアカウント作成
  2. Google Sheets APIの有効化
  3. 「APIキー作成」「OAuth 2.0認証」「サービスアカウント作成」のいずれか

スプレッドシートの読み取りだけなら、対象のスプレッドシートに全員がアクセスできるように設定すれば、APIキーで簡単にデータ取得ができます。

access setting

なお、APIキーを公開したり、他人に教えたりしてはいけません。セキュリティ的には、APIキーではなく「OAuth 2.0認証」または「サービスアカウント作成」を勧めます。今回は、動作確認だけなので、APIキーを使ってスプレッドシートのデータ取得を行います。

【Step.5】GSuite Application Scopeの設定

先ずは、GSuite Application Scopeの設定を行います。画面左側のアクティビティ検索窓に「gsuite」と入力します。表示された「GSuite Application Scope」アクティビティを、ワークフロー内にドラッグ&ドロップします。

gsuite application scope

下表の通り、プロパティを設定します。

項目 備考
ApiKey “*****” APIキーの値
※Step.4で取得したAPIキーの値を記入します。
AuthenticationType ApiKey APIの認証タイプ
Services Sheets 扱うGSuiteのサービス

【Step.6】シートの範囲読み込み(Read Range)

次は、Sheetsの「Read Range」アクティビティを、GSuite Application ScopeのDoコンテナ内にドラッグ&ドロップします。

read range

下表の通り、プロパティを設定します。

項目 備考
Range “” 読み込むシートの範囲。
※通常は”A1:D4″などのように指定するが、””とすると全範囲が対象となる
SheetName “データ” 読み込むシートの名前
※Step.3で作成したスプレッドシートのシート名を記入します。
SpreadSheetID “*****” 読み込むスプレッドシートのID
※Step.3で作成したスプレッドシートのID番号を記入します。
IncludeHeaders チェックあり ヘッダーの読み込みチェック
Result table 読み込んだデータを保存する変数名

【Step.7】テーブルデータの取り出し

読み込んだテーブルデータを1行ずつ取り出して、順次処理していくために「For Each Row」アクティビティを使用します。

画面左側のアクティビティ検索窓に「for each」と入力します。表示された「For Each Row」アクティビティを、「Read Range」アクティビティの下にドラッグ&ドロップします。

for each row

「For Each Row」のプロパティの「DataTable」には、読み込んだシートのデータを保存している変数「table」を入力します。また、1行ずつ取り出したレコードを一時的に保存する変数名は初期設定のままの「row」にしておきます。

【Step.8】テーブルデータの表示

下図を見てください。「For Each Row」アクティビティでは、各レコードが変数rowに代入されます。

table data

各レコードの値を参照するには、「row.Item(n).ToString」と設定します。Item(n)で、レコードのn列目の項目を取得することができます。慣習的にnは0から数え始めます。最後のToStringは、データの型を文字列に変換するメソッドです。この辺りは深く気にせずに、おまじないだと思って割り切りましょう。

では、各レコードの中身をメッセージ画面に表示してみましょう。画面左側のアクティビティ検索窓に「box」と入力します。表示された「Message Box」アクティビティを、「For Each Row」アクティビティのBodyコンテナ内の先頭にドラッグ&ドロップします。

message box

最後に、「Message Box」アクティビティのプロパティで、Contentの値に下記の式を入力します。

row.Item(0).ToString + vbNewLine + row.Item(1).ToString + vbNewLine + row.Item(2).ToString + vbNewLine + row.Item(3).ToString

【Step.9】ワークフローの実行

それでは、上部パネルの「Run」をクリックし、このワークフローを実行してみましょう。

run

上手く、スプレッドシートの各レコードの値を順番に表示できました。

まとめ

今回は、GSuite.ActivitiesのRead Rangeを使用して、Googleスプレッドシートのデータを取得しました。下記の点を理解して、他の業務にも応用できるようにしましょう。

  • GSuite.ActivitiesのRead Rangeを使ってスプレッドシートのデータを取得できる
  • スプレッドシートからデータ取得するには「APIキー作成」「OAuth 2.0認証」「サービスアカウント作成」の何れかが必要
  • スプレッドシートのデータは「データテーブル」として取得される
  • データテーブルから各レコードを取り出せる

最後に、UiPathに関する参考図書を一冊紹介しておきます。
できるUiPath 実践RPA <amazon.co.jp>

※本書の内容はネット上でも公開されているようです(できるネット)。

シェアする

  • このエントリーをはてなブックマークに追加

フォローする