目次
はじめに
UiPathでプログラムを開発する際、Excelファイルを扱う処理を頻繁に作成することがあると思います。
Excelのような表形式のデータはUiPathの「データテーブル(DataTable)型」を利用すると、データ検索や並び替え等の処理を簡単に実装することができます!
今回はUiPathの「データテーブル(DataTable)型」を利用して簡単にできる処理のうち、「データのフィルタリング(抽出)」と「データのソート(並び替え)」をご紹介いたします!
実際にやってみましょう!
今回は以下の処理を行うサンプルプログラムを作成します。
<処理概要>
① Excelファイル(sampleData.xlsx)からデータを読み込む。
② データの中から「分類」が「果物」であるものをフィルタリングする。
③ フィルタリングしたデータを「単価」の低い順にソートする 。

DataTable 型変数は、大量の情報を格納できる変数の型の代表となるもので、行と列を持つデータベースまたは簡易スプレッドシートとして機能します。
DataTable 変数は、データベース間で特定のデータを移行する作業や、Web サイトから情報を抽出してローカルのスプレッドシートに格納する作業などに役立てることができます。
引用元 :https://docs.uipath.com/studio/lang-ja/docs/data-table-variables
① Excelファイルからデータを取得する
まず、Excelデータの読み込み結果を格納する変数「Excel読込結果」を「DataTable」型で作成します。

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

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

方向 | 項目名 | 説明 | 設定値例 |
---|---|---|---|
入力 | シート名 | 読み取るデータが含まれるExcelのシート名を入力する。 | “Sheet1” |
入力 | 範囲 | データを読み取る範囲を入力する。 範囲を指定しない場合は、スプレッドシート全体を読み取る。 範囲をセルとして指定した場合は、そのセルを開始セルとする範囲全体を読み取る。 | “A1” |
出力 | データテーブル | Excelから読み取った結果を格納するDataTable型の変数を入力する。 | 「Excel読込結果」変数 |
「プロジェクト > 依存関係」に「UiPath.Excel.Activities」が表示されていない場合は、以下の手順でExcel用のパッケージをダウンロードしてください。
<ダウンロード手順>
① 「パッケージ管理」をクリックする。
② 「パッケージ管理」ダイアログが表示されるので「すべてのパッケージ」を選択する。
③ 「検索キーワード入力」欄に「Excel」を入力し、エンターキーを押す。
④ 「UiPath.Excel.Activities」を選択する。
⑤ 「インストール」ボタンをクリックする。
⑥ 「保存」ボタンをクリックする。
② 取得したデータから「果物」だけをフィルタリング(抽出)する
このサンプルプログラムではフィルタリング結果を別のデータテーブルに格納するため、フィルタリング結果を格納する変数「フィルタリング結果」を「DataTable型」で作成します。

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

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

項目名 | 説明 | 設定値例 |
---|---|---|
入力データテーブル | フィルタリング対象となるデータが格納されているDataTable型の変数を入力する | 「Excel読込結果」変数 |
出力データテーブル | フィルタリングした結果を格納するDataTable型の変数を入力する。 | 「フィルタリング結果」変数 |
データ保持/削除 | フィルター処理する際に行を維持するか削除するかを指定する。 | “保持” |
フィルタ条件 | フィルタリングする条件を記載する。 | 列 :”分類”(抽出対象となる列名) 操作:”=”(値と一致した場合抽出) 値 :”果物”(抽出したい値) |
③ フィルタリングしたデータを「単価」の低い順にソート(並び替え)する
フィルタリング結果同様、ソート結果も同様に別のデータテーブルに格納するため、「ソート結果」変数を「DataTable型」で作成します。

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

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

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

「Excel読込結果」変数には「sampleData.xlsx」に記載されているデータのうち指定された範囲のデータが格納されていました!
そして「フィルタリング結果」変数には指定した条件で抽出したデータが、「ソート結果」変数には指定した条件で並び替えたデータが格納されていることが確認できました!
まとめ
今回はExcel等のデータを簡単に扱うことができる「データテーブル(DataTable)型」の操作方法についてご紹介しました!
「データテーブル(DataTable)型」を使ったアクティビティは今回ご紹介したアクティビティ以外にもまだまだ沢山存在します!
その他の様々な処理についても今後当サイトのブログで紹介していこうと思いますのでよろしくお願いいたします!