皆さんこんにちは。
今回は前回の続きでデータテーブル関連で、他のデータテーブルをコピーする方法をお伝えします。
イメージは以下のようになります。
やり方は色々とあるのですが、今回は「データ行を追加」アクティビティを使った方法を解説いたします。
UiPathデータテーブルの準備
まずはこちらを行います。
・データテーブル変数の宣言(dt果物,dt野菜)
・各ファイルからデータテーブル変数に格納
やり方は前回説明しているので詳細は割愛します。
関連記事:UiPathデータテーブルでEXCELファイルの操作方法や連携方法を徹底解説!
UiPathデータテーブルデータ行を追加
手順は以下のようにやります
①DataRow型の変数を宣言します。これはコピー先(dt果物)の1行分のデータを保存するものです
②「繰り返し(データテーブルの各行)」アクティビティでコピー元(dt野菜)のデータ行分繰り返す
③DataRow型の変数にコピー先のデータテーブルの行の構造をコピーします
④dt野菜の1行分のデータをDataRow型の変数に格納します
⑤「データ行の追加」アクティビティで追加します
では具体的に図で説明します。
UiPathデータテーブルDataRow型の変数宣言
UiPathデータテーブル繰り返し(データテーブルの各行)
②「繰り返し(データテーブルの各行)」アクティビティでコピー元(dt野菜)のデータ行分繰り返す
UiPathデータテーブルアクティビティでコピー
③「代入」アクティビティを使ってDataRow型の変数にコピー先のデータテーブルの行の構造をコピー
UiPathデータテーブルエラーについて
④dt野菜の1行分のデータをDataRow型の変数に格納
このように代入してしまうとデータ行を追加するときに下のようなエラーが出ます
これは異なるデータテーブルのDataRowを追加しようとしたからです。
たとえ同じ仕様であってもダメなんですね。
っということで以下の方法で「dr1行分のデータ」変数に格納します
UiPathデータテーブルデータ行の追加
⑤「データ行の追加」アクティビティで行の追加
UiPathデータテーブルについてまとめ
いかがだったでしょうか?
他のデータテーブルにコピーするのはちょっとしたコツがあります。
特に私はDataRowをそのまま別のデータテーブルに追加していて、当時は結構ハマってしまいました。
それぞれのItemの型が同じなので良いかと思っていたのですが、許してくれないようです。
データテーブルに行を追加する方法はまだあります。
このページですべてをお伝えしようと思ったのですが、結構ボリュームが大きくなってしまったので次回に回そうと思います。
ちなみに他の方法とは以下のようなものがあります。
・「データ行の追加」アクティビティを使い配列行で追加する(今回はDataRowで追加しました)
・「メソッドを呼び出し」アクティビティ(InvokeMethod)を使って追加する
それぞれのやり方で処理速度も影響するので(特に「メソッドを呼び出し」アクティビティはちょっと時間がかかる)、使用環境に合わせて使い分けるようにできると良いかと思います。
それぞれの方法での処理時間の違いも次回以降やってみたいと思います。
今回もお読みいただき誠にありがとうございました。