5
4

More than 1 year has passed since last update.

【UiPath】データテーブルの操作(5)並べ替え

Last updated at Posted at 2022-06-25

はじめに

この投稿は、RPAツール「UiPath」での 実装例 について記事です。
以前にも同様の記事を書いていましたが、内容が古かったので新しく記事にしました。

「UiPath Friends もくもく会 2022年06月開催 2022-06-25(土)9:00 - 12:00」で書きました。

データテーブルの操作 シリーズ

DataTable の操作方法について記載した記事が、他にもあります。参考まで。

データテーブルの行を並び替えたい

データテーブルの行を「特定の列」で並び替える方法は以下の「4つ」あります。

1. 標準アクティビティの「データテーブルを並び替え」で実施
2. DataTableの「Select」メソッドの第2引数で で並び替え
3. Dataview で並び替え
4. LINQ で並び替え

1. 標準アクティビティの「データテーブルを並び替え」で実施

UiPath標準で、並び替え用のアクティビティ「データテーブルを並び替え」が提供されています。

「並び替えに指定する列」と「順序(Ascending(昇順)、Descending(降順))」を指定できます。

このアクティビティでは 「並び替えに指定できる列は1つのみ」 です。(2022年06月現在)

例えば、DataTableの「A」列で「降順」並び替えたい場合は、以下のように指定します。
image.png

2. DataTableの「Select」メソッドの第2引数で で並び替え

DataTableには「Select」というメソッドが有り、第1引数で「絞り込み条件」、第2引数で「並び替え」を指定できます。第1引数に何も指定しなければ、絞り込みはされない ので、並び替えだけをすることも出来ます。

※ 標準アクティビティでは出来なかった「複数の列を指定して並び替え」も出来ます。

'// ageが高い順に並び替え
dt_selected = dt.Select("","age desc").CopyToDataTable
'// teamごとに、ageが高い順に並び替え
dt_selected = dt.Select("","team, age desc").CopyToDataTable

3. DataView で並び替え

DataTable には「DataView」という「並べ替え、フィルター処理、検索、編集」ができる機能があり、これを利用してデータを並び替えることが出来ます。SQL の「order by」に近いイメージです。

※ 標準アクティビティでは出来なかった「複数の列を指定して並び替え」も出来ます。

実装イメージはこんな感じです。
image.png

System.Data.DataView 型の変数を用意して「New Dataview(元のデータテーブル変数)」でセットし「.Sort」で並び替えの指定(Order by指定)を書きます。

4. LINQ で並び替え

.NET にはLINQ(リンク)という「並び替え」や「連続処理」を行うための機能があり、UiPath でも使用できます。

実装イメージはこんな感じです。
image.png

「.OrderBy/OrderByDescending」で並び替え列の指定を指定し、複数の列で並び替えたい場合は、「.ThenBy/.ThenByDescending」で繋げていきます。

上記画像の例でいうと、以下のように記述しています。

'// Team で昇順、Point で降順に並び替え
Dt_Before.AsEnumerable().OrderBy(Function(r) r("Team")).ThenByDescending(Function(r) r("Point")).CopyToDataTable()

終わりに

いかがでしたでしょうか。実装時に役立てば幸いです。
この記事が参考になったら、 LGTMをお願いします。閲覧ありがとうございました。

5
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
4