鈴鹿の住処

■UiPath Tips■

更新日:  作成日:

データテーブルの基礎

■はじめに

UiPath Studio でのデータテーブルの基礎を紹介します。

データテーブルとは、Excelのような表形式でデータを取り扱えるデータ型になります。

Excel、CSV、ブラウザから表形式のデータをデータテーブルとして取得でき、編集・追加・削除・フィルター・並び替えの加工を行い、Excel や CSV に出力することができます。

今回はデータテーブルについてとデータの取り扱い方法を紹介します。

■データテーブルについて

・データの型

データテーブル変数の型は、 System.Data.DataTable になります。
変数の型のプルダウンにコレクション型が無い場合は、[型の参照(Browse for Types)] > [.NET型を参照して選択] ウィンドウで「System.Data.DataTable」で検索して、設定することができます。

[型の参照(Browse for Types)] [.NET型を参照して選択] ウィンドウ
・データの構造

データテーブルは、Excelに近い表形式のデータ構造になっており、ヘッダー、列(Column)と行(Row)の三つで構成されています。
列と行のインデックスは、両方とも 0 から始まります。Excelからデータを取得して、データテーブルを作成した場合でも、インデックスは 0 から始まります。
また、ヘッダー名は重複することは不可となり、Excelからデータを取得して、データテーブルを作成する際にヘッダーが重複していた場合、エラーとなります。

■データの取得

データテーブル変数に格納したデータを取得するには、「繰り返し(データテーブルの各行)」アクティビティを使用するか、取り出す位置をインデックス・列名で指定します。

・繰り返し(データテーブルの各行) (UiPath.Core.Activities.ForRow)

行インデックス「0」から順次、1行分のデータを取り出すことができます。取り出されたデータは「CurrentRow」内に格納されます。
繰り返し(データテーブルの各行)内で列インデックスか列名を指定することで、データを取得することができます。

【プロパティ】
データテーブル(必須)・・・操作するデータテーブル変数を記入します。
項目名(必須)・・・操作するデータテーブルから取り出される1行分のデータが格納される変数名を記入します。新しく変数を作成する必要はありません。デフォルトでは「CurrentRow」ですが、変更することができます。
現在のインデックス(任意)・・・繰り返しの回数を出力する変数(Int 型)を指定できます。インデックスは 0 から始まります。

繰り返し(データテーブルの各行)
・インデックス・列名で指定

「代入」アクティビティなどで、特定列・特定行のデータを取得する方法になります。

データテーブル変数.Rows(行番号)(列番号)

データテーブル変数.Rows(行番号).Item(列番号)

データテーブル変数.Rows(行番号).Item("列名")
データテーブル変数から、行番号列番号"列名"を指定して、値を取得します。

引数「行番号」・・・取得する行番号を指定します。
引数「列番号」・・・取得する列番号を指定します。
引数「列名」 ・・・取得する列をヘッダー名で指定します。
戻り値の型・・・オブジェクト型(Object)

■データの取扱い

フィルターした件数を取得

SELECT文でフィルターを行い、Countプロパティにて件数を取得することができます。
データテーブルをフィルター(UiPath.Core.Activities.FilterData Table)」アクティビティを使用して、フィルターを行うこともできますが、フィルター結果をデータテーブル変数に出力する必要があります。

データテーブル変数.Select("[列名]='条件'").Count

データテーブル変数.Select("[列名]='条件' And [列名]='条件'").Count
引数は文字列で指定するので、列名条件は変数を使うことができます。AndOr で複数条件を指定することもできます。

引数「列名」・・・フィルターを行う列をヘッダー名で指定します。
引数「条件」・・・フィルター条件を指定します。
戻り値の型・・・数値型(Int)

テーブルのコピー

代入」アクティビティでTBL1 = TBL2を行うと参照となるので、片方のデータを編集するともう片方のデータも編集されます。
コピーするには、「代入」アクティビティにてTBL1 = TBL2.Copyのように、Copy メソッドを使う必要があります。