はじめに

UiPathでプログラムを開発する際、Excelファイルを扱う処理を頻繁に作成することがあると思います。
Excelのような表形式のデータはUiPathの「データテーブル(DataTable)型」を利用すると、データ検索や並び替え等の処理を簡単に実装することができます!

今回はUiPathの「データテーブル(DataTable)型」を利用して簡単にできる処理のうち、「データのフィルタリング(抽出)」「データのソート(並び替え)」をご紹介いたします!

実際にやってみましょう!

今回は以下の処理を行うサンプルプログラムを作成します。

 <処理概要>
  ① Excelファイル(sampleData.xlsx)からデータを読み込む。
  ② データの中から「分類」が「果物」であるものをフィルタリングする。
  ③ フィルタリングしたデータを「単価」の低い順にソートする 。

UiPath-サンプルプログラム例
DataTable型とは

DataTable 型変数は、大量の情報を格納できる変数の型の代表となるもので、行と列を持つデータベースまたは簡易スプレッドシートとして機能します。
DataTable 変数は、データベース間で特定のデータを移行する作業や、Web サイトから情報を抽出してローカルのスプレッドシートに格納する作業などに役立てることができます。

引用元 :https://docs.uipath.com/studio/lang-ja/docs/data-table-variables

① Excelファイルからデータを取得する

まず、Excelデータの読み込み結果を格納する変数「Excel読込結果」を「DataTable」型で作成します。

データテーブル操作-変数1

次に、「アクティビティ」から「Excelアプリケーションスコープ」を選択し、ワークフローに配置します。
「Excelアプリケーションスコープ」に処理対象となる「Excelファイルのパス」(サンプルプログラムでは「”sampleData.xlsx”」)を指定することで、スコープの内側に配置したアクティビティ処理を対象ファイルに実行することができます。

データテーブル操作-Excelアプリケーションスコープ

「Excelアプリケーションスコープ」の配置が完了したら、「範囲を読み込み」アクティビティを「Excelアプリケーションスコープ」の中に配置します。
「範囲を読み込み」アクティビティの「プロパティ」に以下の値を設定することで、指定した範囲にあるExcelのデータ内容を読み込むことができます。

UiPath-データテーブル操作-範囲を読み込み
方向項目名説明設定値例
入力シート名読み取るデータが含まれるExcelのシート名を入力する。“Sheet1”
入力範囲データを読み取る範囲を入力する。
範囲を指定しない場合は、スプレッドシート全体を読み取る。
範囲をセルとして指定した場合は、そのセルを開始セルとする範囲全体を読み取る。
“A1”
出力データテーブルExcelから読み取った結果を格納するDataTable型の変数を入力する。「Excel読込結果」変数
※今回のプログラムでは「オプション」、「その他」部分についての変更は不要です。
「Excel」関連のアクティビティが表示されない場合は?
アクティビティを検索しても「Excel」関連のアクティビティが表示されない場合、「UiPath.Excel.Activities」パッケージがUiPath Studioにインストールされていない可能性があります。
「プロジェクト > 依存関係」に「UiPath.Excel.Activities」が表示されていない場合は、以下の手順でExcel用のパッケージをダウンロードしてください。

<ダウンロード手順>
 ① 「パッケージ管理」をクリックする。
 ② 「パッケージ管理」ダイアログが表示されるので「すべてのパッケージ」を選択する。
 ③ 「検索キーワード入力」欄に「Excel」を入力し、エンターキーを押す。
 ④ 「UiPath.Excel.Activities」を選択する。
 ⑤ 「インストール」ボタンをクリックする。
 ⑥ 「保存」ボタンをクリックする。

② 取得したデータから「果物」だけをフィルタリング(抽出)する

このサンプルプログラムではフィルタリング結果を別のデータテーブルに格納するため、フィルタリング結果を格納する変数「フィルタリング結果」を「DataTable型」で作成します。

データテーブル操作-変数2

次に、「アクティビティ」から「データ テーブルをフィルター」アクティビティを選択し、「フィルターウィザード」ボタンをクリックします。

UiPath-データターブルをフィルター

表示された「フィルターウィザード」に以下の値を入力し、「OK」ボタンをクリックします。

データテーブルをフィルター-フィルターウィザード
項目名説明設定値例
入力データテーブルフィルタリング対象となるデータが格納されているDataTable型の変数を入力する「Excel読込結果」変数
出力データテーブルフィルタリングした結果を格納するDataTable型の変数を入力する。「フィルタリング結果」変数
データ保持/削除フィルター処理する際に行を維持するか削除するかを指定する。“保持”
フィルタ条件フィルタリングする条件を記載する。列 :”分類”(抽出対象となる列名)
操作:”=”(値と一致した場合抽出)
値 :”果物”(抽出したい値)
※今回のプログラムでは「出力行」タブの設定変更は不要です。

③ フィルタリングしたデータを「単価」の低い順にソート(並び替え)する

フィルタリング結果同様、ソート結果も同様に別のデータテーブルに格納するため、「ソート結果」変数を「DataTable型」で作成します。

データテーブル操作-変数3

次に、「アクティビティ」から「データ テーブルを並べ替え」アクティビティを選択し、「プロパティ」に以下の値を設定します。

UiPath-データテーブル並び替え
カテゴリ項目名説明
並べ替え列インデックス並び替えの基準となる列のインデックスの数字をInt32型で入力する。
※「列」、「名前」のいずれかに値を入力している場合は入力不要。
並べ替え列並べ替えの基準となる列が含まれているDataColumn型の変数を入力する。
※「インデックス」、「名前」のいずれかに値を入力している場合は入力不要。
並べ替え列名前並び替えの基準となる列の名前をString型で入力する。
※「インデックス」、「列」のいずれかに値を入力している場合は入力不要。
並べ替え列順序表を並べ替える順序を選択する。
・Ascending:昇順(値の小さい順)に並び替え
・Descending:降順(値の大きい順)に並び替え
入力データテーブルソートを行う対象となるDataTable型の変数を入力する。
出力データテーブルデータのソート結果を格納するDataTable型の変数を入力する。
※今回のプログラムでは「その他」部分についての変更は不要です。

④ 実行する

サンプルプログラムの準備が整ったので、実行してみます。
今回は各テーブルの値を出力するよう、 「データ テーブルを出力」アクティビティを配置し、テーブルの内容を出力します。

UiPath-データテーブルを出力

実際に実行してみましょう!

データテーブル操作-サンプルプログラム結果

「Excel読込結果」変数には「sampleData.xlsx」に記載されているデータのうち指定された範囲のデータが格納されていました!
そして「フィルタリング結果」変数には指定した条件で抽出したデータが、「ソート結果」変数には指定した条件で並び替えたデータが格納されていることが確認できました!

まとめ

今回はExcel等のデータを簡単に扱うことができる「データテーブル(DataTable)型」の操作方法についてご紹介しました!
「データテーブル(DataTable)型」を使ったアクティビティは今回ご紹介したアクティビティ以外にもまだまだ沢山存在します!

その他の様々な処理についても今後当サイトのブログで紹介していこうと思いますのでよろしくお願いいたします!