更新日: 作成日:
データテーブルの基礎
■はじめに
UiPath Studio でのデータテーブルの基礎を紹介します。
データテーブルとは、Excelのような表形式でデータを取り扱えるデータ型になります。
Excel、CSV、ブラウザから表形式のデータをデータテーブルとして取得でき、編集・追加・削除・フィルター・並び替えの加工を行い、Excel や CSV に出力することができます。
今回はデータテーブルについてとデータの取り扱い方法を紹介します。
■データテーブルについて
・データの型
データテーブル変数の型は、 System.Data.DataTable になります。
変数の型のプルダウンにコレクション型が無い場合は、[型の参照(Browse for Types)] > [.NET型を参照して選択] ウィンドウで「System.Data.DataTable」で検索して、設定することができます。
![[型の参照(Browse for Types)]](/UiPathTips/images/01-06-01-01.jpg)
![[.NET型を参照して選択] ウィンドウ](/UiPathTips/images/01-06-01-02.jpg)
・データの構造
データテーブルは、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
引数は文字列で指定するので、列名と条件は変数を使うことができます。And や Or で複数条件を指定することもできます。
引数「列名」・・・フィルターを行う列をヘッダー名で指定します。
引数「条件」・・・フィルター条件を指定します。
戻り値の型・・・数値型(Int)
テーブルのコピー
「代入」アクティビティでTBL1 = TBL2を行うと参照となるので、片方のデータを編集するともう片方のデータも編集されます。
コピーするには、「代入」アクティビティにてTBL1 = TBL2.Copyのように、Copy メソッドを使う必要があります。