Skip to content

UiPath DataTableを本気で理解する

Posted in RPA, and UiPath

Last updated on 2020年9月28日

UiPathで自動化をしていると利用する事となる変数の型 DataTable。馴染みのない方からしたら厄介そのものです。
この DataTable ですが、Excel等の表形式のデータを用いる際に利用されなれると非常に便利です。
今回はこのDataTableについて少し丁寧に扱ってみたいと思います。

DataTable(データテーブル)とは??

DataTableですが、データテーブルと読まれ変数の型の一つです。

つまり、String型(文字列) Int型(数字)のようにDataTable型というものがあるということです。

UiPath Studioの変数パネルで見てみましょう。

青くマークされた行が DataTable型 です、ちゃんとありましたね。

では、このDataTable型とはどんな形式のデータを格納する型なのでしょうか。

その答えは、表形式のデータになります。

表形式というのは「行と列を持つデータ」であり、イメージとしてはEXCELの表そのものになります。

下記の表は、私が最近読んだ漫画一覧ですが、行と列からなっており表形式のデータということができます。


DataTableを利用する場面

では、どのような自動化の場面においてこのDataTable型(表形式のデータ)を利用するのでしょうか。

これは大きく3つの自動化のケースがあると思います。

私が考えるDataTable型を利用するケースは下記です。

  • Excelデータを利用する場合
  • CSVデータを利用する場合
  • Web上のテーブルデータを利用する場合
    (データスクレイピングを利用する場合)

これらの関連アクティビティを見ていただければわかりますが、それぞれの入力や出力にDataTable型の変数を指定するようになっています。

下記は【CSVを読み込み】アクティビティの例です。


DataTableとして取り込む

では実際にDataTableとしてデータを取り込む例を説明します。

まず利用するデータですが上の ”私が最近読んだ漫画一覧" をExcelとしたものを利用したいと思います。

DataTableとして取り込む場合ですが、上で説明した利用ケース毎に利用するアクティビティが異なります。

  • Excel → 【範囲を読み込み】アクティビティ
  • CSV → 【CSVを読み込み】アクティビティ
  • Web上のテーブルデータ → データスクレイピング

今回はExcelデータなので【範囲を読み込み】アクティビティを利用します。

もちろんExcelの利用なので、【Excelアプリケーションスコープ】アクティビティも忘れないでください。

ここで【範囲を読み込み】アクティビティについて簡単に説明します。

このプロパティパネルを確認するとオプションとして「ヘッダーの追加」というものがあります。

これは「読み込みの際に最初の行をヘッダーとして読み込むか」を設定するオプションであり、今回のように最初の行がヘッダーとして始まっている場合はチェックする必要があります。

チェックすることにより最初の行はデータではなくヘッダーとして扱われます。

これにより上のようなExcelデータは下記のようなDataTable型として保持されることとなります。

番号を振っていますが、これはそのデータにアクセスするためのキーです。

列・行ともに、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からの値の取得を試して見てください!


最後に一言


DataTableって難しいですよね。他にもRPAツール利用するのですがこれはUiPathのみで利用する考え方ですね。ただ非常に優れており自動化においてアドバンテージとなることが非常に多いです。
今回は基本的な使い方でしたがよくある利用の仕方としては、DataTable内のデータの繰り返し処理です。こちらについてはまた別の記事でまとめて見たいと思います。

今回も最後までお読みいただきありがとうございました。

ご質問等はコメントにていただければと思います。

では。


単行本(ソフトカバー): 208ページ 出版社: インプレス (2018/10/15)

Be First to Comment

コメントを残す