Last updated on 2022年8月11日
どうも、エピックです。
UiPathで自動化をしているとぶち当たるデータテーブル。
馴染みのない方からしたら厄介そのものです。
このデータテーブルですが、Excelのような表形式のデータを用いる際に利用され、使いなれると非常に自動化がはかどります。
今回はこのDataTableについて少し紹介してみたいと思います。
データテーブルは、Excelの表のようなイメージで捉えるとよいです。
DataTable(データテーブル)とは??
DataTableですが、データテーブルと読まれデータ型の一つです。
つまり、String型(文字列) Int型(数字)のようにDataTable型というものがあるということですね。
UiPath Studioの変数パネルで見てみましょう。
青くマークされた行が DataTable型 です。
ちゃんとありますね。
では、このDataTable型とはどんな形式のデータを格納する型なのでしょうか。
それは、表形式のデータを扱う型になります。
変数の型 | 格納するデータの形式 |
---|---|
String | 文字列 (Ex. "抹茶アイス") |
Int32 | 整数 (Ex. 16) |
Boolean | 真、または、偽 (Ex. True) |
DataTable | 表形式のデータ |
表形式というのは「行と列を持つデータ」であり、イメージとしてはEXCELの表そのものになります。
次の表は私が最近読んだ漫画一覧ですが、行と列からなっており表形式のデータということができます。
DataTableを利用する場面
では、どのような場面においてこのデータテーブル型(表形式のデータ)を利用するのでしょうか。
これには大きく3つの自動化のケースがあります。
- Excelデータを使った自動化を行う場合
- CSVデータを使った自動化を行う場合
- Web上のテーブルデータを使った自動化を行う場合
(データスクレイピングを行う場合)
これらの関連アクティビティのプロパティパネルを確認してみます。
データテーブル型を扱うのであれば、入力・出力にデータテーブル型の変数を指定するようになっているはずです。
[CSVを読み込み] アクティビティを例に確認してみます。
出力がデータテーブル型になっていますね。
DataTableとして取り込む
では実際に先ほど説明した3つのケース(CSVの活用/ Excelの活用/ データスクレイピング)について、データテーブルとしてデータを取り込む方法を説明します。
取り込むケース毎に利用するアクティビティが異なってくるため注意です。
- Excel → [範囲を読み込み]アクティビティ
- CSV → [CSVを読み込み]アクティビティ
- Web上のテーブルデータ → データスクレイピング
ここでは自動化で頻繁に利用するExcelを例に説明をしたいと思います。
まず利用するデータですが先のデータをExcelとして準備しました。
Excelデータなので [範囲を読み込み] アクティビティを利用します。
このとき [Excelアプリケーションスコープ] アクティビティも必要となるので忘れずに。
[範囲を読み込み] アクティビティについてですが、このプロパティパネルを確認するとオプションとして [ヘッダーの追加] というものがあります。
これは “読み込みの際に最初の行をヘッダーとして読み込むか” を設定するオプションであり、今回のように最初の行がヘッダーとして始まっている場合はチェックする必要があります。
チェックすることにより最初の行はデータではなくヘッダーとして扱われます。
このように設定をすると、先ほどのExcelデータは次のようなDataTable型として保持されることとなります。
番号を振っていますが、これはそのデータにアクセスするためのキーです。
列・行ともに、1ではなく0から値がはじまることに注意してください。
Excelでいえば “A11” や “C4” のように各セルを特定しますがそれと同じイメージで問題ありません。
例えば、”漫画のタイトル” の列のうち “Helck” について特定するのであれば、行(2)の列(0)がそのキーになります。
また、今回の場合はヘッダーを利用しているので 列”漫画タイトル”の行(2) という言い方もできます。
実際にDataTableから値を取り出してみる
さきほどまででExcelデータをDataTableとして保持することができたので、実際に取り出すことをしてみたいと思います。
さきほどのExcelデータは “データテーブル” と命名した変数(DataTable型)に格納しています。
値が取り出せてことをすぐに確認するため[メッセージボックス]アクティビティを利用しポップアップ表示させてみます。
では、私のイチオシ漫画である “Helck” について取り出してみます。
データテーブル.Rows(2).Item(0).ToString
取り出せましたね。
また次のような書き方でも取り出すことができます。
これはヘッダー名を利用した書き方になります。
データテーブル.Rows(2).Item("漫画タイトル").ToString
こちらも問題なく取り出せました。
整理しますと、データテーブル内のデータは下記のような式を利用して取り出すことができます。
最後に
DataTableって難しいですよね。ただ自動化において頻繁に利用するので少しずつ理解を深めていくのが良いと思います。今回は基本的な使い方でしたがよくある利用の仕方としては、DataTable内のデータの繰り返し処理です。こちらについてはまた別の記事でまとめたいと思います。
今回も最後までお読みいただきありがとうございました。
ご質問等はコメントにていただければと思います。
では。