見出し画像

RPAデベロッパー基礎㊶ データ テーブルおよび Excel 操作の自動化

今日もUiPath Academyの「RPAデベロッパー基礎」で学習していきます

Studio によるデータ テーブルおよび Excel 操作の自動化

データ テーブルとは何か

行と列を持つ単純なスプレッドシートとしてデータを格納できる DataTable 型変数で取り扱われ、一意の列と行の座標に基づいて各データを識別できる
Excel ワークシートのメモリ表現と考える

データテーブルは、行と列のコレクションを持つ単一のデータベーステーブルのメモリ内表現

Excelワークシートは、さまざまな可視化オプション及び幅広いグラフィカルユーザーインターフェイスを使用して、データを視覚的に表現したもの

データテーブル作成方法

■ [データ テーブルを構築] アクティビティ

このアクティビティを使用して、列数および各列のデータ型を選択できる
さらに、各列に [null を許可]、[自動インクリメント] (数値の場合)、[既定値]、[一意]、[最大長](文字列の場合) などのオプションを個別に設定できる   

■ [範囲を読み込み] アクティビティ

このアクティビティは、ワークシートのコンテンツ (またはそのワークシートからの選択) を取得し、DataTable 型変数に格納する
[プロパティ] パネルで Ctrl + K を使用して変数を作成した場合、DataTable 型になる

■ [CSV を読み込み] アクティビティ

このアクティビティは、CSV ファイルのコンテンツをキャプチャして DataTable 型変数に格納する
あまり使用されなくなったが、この種類のドキュメントを操作するレガシー アプリケーションまたは内製アプリケーションはまだ存在する

■ データ スクレイピング操作

Studio のデータ スクレイピング機能を使用して、ブラウザー、アプリケーション、またはドキュメントから構造化データを抽出し、DataTable 型変数に格納できる

■ [テキストからデータ テーブルを生成] アクティビティ

構造化テキストからデータ テーブルを生成
このアクティビティでは、生成された表に応じた
列と行の区切り文字を選択できる


データテーブルの操作

DataTable 型変数の主な操作
【デモ】
●  2 つの DataTable 型変数を作成
●  それらの値を結合した後不要な列をフィルター処理で除外
●  得られたデータ テーブルの行を昇順で並べ替え

データ テーブルのセルは、列名または列インデックスおよび行インデックスによって個別に識別
どちらのインデックスも 0 から始まる
スプレッドシートのセルは、列名と 1 から始まる行番号によって個別に識別される

[範囲を読み込み] アクティビティ
スプレッドシートのデータをキャプチャして
DataTable 型変数に格納

●1 つ目の変数「Users」には、名前、一意の ID、学部、電話番号などの、図書館の利用者に関する情報が含まれる
●2 つ目の変数「OverdueBooks」には、著者の名前、タイトル、一意の書籍 ID、借りている人の ID など、現在貸し出されているすべての本に関するデータが含まれる

借りている本の返却期限が過ぎている図書館の利用者の名前と電話番号を収集して、1 つの変数に格納

[データ テーブルを結合] アクティビティ
(2 つの表の行を、両方の表に共通の値を使用し、結合のルールに従って結合)

生成されるデータ テーブルには、
設定する結合ルールに従って両方のテーブルから抽出された行を含める必要があるため、 ルールに一致しない行はすべて、生成されるテーブルから削除
Ctrl + K を押して、変数「BorrowedBooksString」を作成

[データ テーブルを出力] アクティビティ

[1 行を書き込み] アクティビティ
変数「BorrowedBooksString」

不要な詳細がいくつかあるため、それらをフィルター処理して除外し、雑然とならないようにすることができる

[データ列を削除] アクティビティ
重複する列を BorrowedBooks データ テーブルから削除
両方の ID 列が同じ名前であるため、削除する列のインデックス「6」を使用

[データ列を削除] アクティビティ
削除する列は、インデックスまたは名前を使用して特定できるため、列名を引用符で囲んで「"Department"」と入力

[データ テーブルを出力] アクティビティのすぐ前に
[データ テーブルを並べ替え] アクティビティを追加
変数 BorrowedBooks を入力変数および出力変数として追加 [並べ替え列] の下の [名前] 入力フィールドに「"ID"」列を追加
既定では、順序は [Ascending] これをそのまま使用

[データ テーブルを結合] アクティビティ 動作の仕組み

[結合型] を選択 3 つのオプション
[Inner]: 結合ルールに一致するデータテーブル 1 とデータテーブル 2 のすべての行が保持
ルールに一致しない行はすべて、結果表から削除

[Left]: データテーブル 1 のすべての行と結合ルールに一致するデータテーブル 2 の値のみが保持
データテーブル 2 の行と一致する値がないデータテーブル 1 の行の列には、null 値が挿入

[Full]: 結合条件の一致/不一致にかかわらず、データテーブル 1 とデータテーブル 2 のすべての行が保持
両方のデータテーブルの条件に一致しない行には、null 値が挿入

結合ルールを設定する必要がある
(1 つまたは複数のルールを設定できる)
各データ テーブルから 1 つの列を名前 (String)、インデックス (Int32)、または ExcelColumn 変数で指定
次のいずれかの演算子を選択:
= (次に等しい)
!= (次に等しくない)
> (次よりも大きい)
< (次よりも小さい)
>= (次よりも大きいか等しい)

UiPath は、DataTable 型変数の操作に使用できるさまざまなアクティビティを提供

[データ テーブルを構築]

専用のウィンドウを使用してデータ テーブルを作成するために使用します。
このアクティビティでは、列数および各列のデータ型をカスタマイズできます。

[繰り返し (データテーブルの各行)]

指定したデータ テーブルにある各行に特定のアクティビティを実行するために使用します。

[データ テーブルをフィルター]

[フィルター ウィザード] ウィンドウで条件を指定して、データ テーブルのフィルター処理を実行できるようにします。
このアクティビティでは、ウィザードで指定する論理条件に従って行や列を維持、または削除できます。

[データ列を追加]

既存の DataTable 型変数に列を追加します。
DataColumn 型のデータ、または、データ型とオプション ([null を許可]、[自動インクリメント]、[既定値]、[一意]、[最大長]) を設定して、空のまま列を追加することもできます。

[データ行を追加]

既存のデータ テーブルに新しい行を追加します。
入力データは DataRow 型にするか、各オブジェクトを各列のデータ型と一致させて、列配列として入力します。

[データ テーブルをクリア]

指定したデータ テーブルのすべてのデータをクリアします。

[テキストからデータ テーブルを生成]

構造化テキストからデータ テーブルを生成します。
このアクティビティでは、生成された表に応じた列と行の区切り文字を選択できます。

[データ テーブルを結合]

[結合ウィザード] を使用し、2 つの表に共通の値を使用して、一致しないデータの扱いを指定した結合ルールに従い 2 つの表の行を結合します。
複数のデータ テーブルを使用するビジネス シナリオで、最も役に立つアクティビティの 1 つです。
そのため、次のレッスンでは、このアクティビティについてより詳しく説明します。

[データ テーブルを検索]

Excel の vLookup と似ています。
指定したデータ テーブルで提供された値を検索でき、その値が見つかった [行インデックス] が返されます。
または、プロパティで指定された Row 座標と Column 座標を持つセルで見つかった値が返されます。

[データ テーブルをマージ]

指定したデータ テーブルを現在のデータ テーブルにマージします。
また、変更を保存するかどうか、およびソースに存在しないスキーマに対して 4 つの定義済みのアクションを指定できます。
[データ テーブルの結合] アクティビティよりも操作が簡単です。

[データ テーブルを出力]

CSV 形式で、データ テーブルを文字列で書き込みます。

[データ列を削除]

指定したデータ テーブルから特定の列を削除します。
入力は、[列インデックス]、[列名]、また DataColumn 型変数を入力する [列] で構成されます。

[データ行を削除]

指定したデータ テーブルから行を削除します。
入力は、[行インデックス]、DataRow 型変数を入力する [行] で構成されます。

[重複行を削除]

指定したデータ テーブルから重複する行を削除し、最初に出現する行だけを維持します。

[データ テーブルを並べ替え]

指定した列の値に基づいてデータ テーブル全体を昇順または降順に並べ替えます。

[行項目を取得]

指定した列に従ってデータ テーブルの行から値を取得します。

[行項目を更新]

指定した値をデータ テーブル行の指定した列に割り当てます。

この記事が気に入ったらサポートをしてみませんか?