アクティビティ
最新
バナーの背景画像
生産性を高めるアクティビティ
最終更新日 2024年4月26日

CSV ファイルを比較する

以下の例では、2 つの既存の .csv ファイルの共通部分と相違部分を格納する 2 つの新しい .csv ファイルを作成する方法について説明します。[CSV を読み込み][データ テーブルを構築] などのアクティビティを使用します。これらのアクティビティは UiPath.Excel.Activities パッケージに含まれています。

2 つの表の差分で新しい CSV ファイルを作成する

サンプルと同等のオートメーション プロセスは以下のように構築できます。

  1. Studio を開き、新しいプロセスを作成し、Differences という名前を付けます。

    注: プロジェクト フォルダーで使用する .csv ファイルを必ず追加してください。このページの下部からサンプルをダウンロードして、サンプルに含まれるファイルを使用することもできます。
  2. ワークフロー デザイナー[フローチャート] コンテナーをドラッグします。

    • 次の変数を作成します。

      変数名

      変数の型

      既定値

      Data1

      System.Data.DataTable

      N/A

      Data2

      System.Data.DataTable

      N/A

      newRow

      System.Data.DataTable

      N/A
  3. [フローチャート] パネルに [CSV を読み込み] アクティビティを配置します。

    • [CSV を読み込み] アクティビティを右クリックし、[StartNode として設定] オプションを選択します。
    • [プロパティ] パネルで [ファイル パス] フィールドに csv1.csv ファイルのパスを追加します。
    • [列名を含める] チェック ボックスを選択します。
    • [データ テーブル] フィールドに変数 Data1 を追加します。
  4. 新しい [CSV を読み込み] アクティビティを追加し、前のアクティビティに接続します。

    • [プロパティ] パネルで [ファイル パス] フィールドに csv2.csv ファイルのパスを追加します。
    • [列名を含める] チェック ボックスを選択します。
    • [データ テーブル] フィールドに変数 Data2 を追加します。
  5. [シーケンス] コンテナーをドラッグして、前の [CSV を読み込み] アクティビティに接続します。
  6. [シーケンス] をダブルクリックして開きます。
  7. [シーケンス][データ テーブルを構築] アクティビティをドラッグします。

    • [プロパティ] パネルで、変数 newRow を [データ テーブル]
    • [データ テーブルを構築] アクティビティの本体内の [データ テーブル] ボタンをクリックします。[データ テーブルを構築] ウィンドウには、2 つの列と行を持つ表が含まれています。
    • 左の列で [列の編集] ボタンをクリックして [列名] フィールドに名前 Number を追加します。
    • [データ型][Int32] に設定します。
    • ウィンドウを閉じるために、[OK] オプションを選択します。
    • 右の列で [列の編集] ボタンをクリックして [列名] フィールドに名前 Character を追加します。
    • [データ型][String] に設定します。
    • ウィンドウを閉じるために、[OK] オプションを選択します。
    • ウィンドウを閉じるにはもう一度 [OK] ボタンを選択します。
  8. [データ テーブルを構築] アクティビティの下に [繰り返し (各行)] アクティビティをドラッグします。

    • [プロパティ] パネルで、変数 Data1 を [データ テーブル]
    • [本体] シーケンスを選択し、次の変数を作成します。

      変数名

      変数の型

      既定値

      strCurrentNo

      文字列

      N/A

      selectedRow

      IEnumerable<DataRow>

      N/A
  9. [繰り返し (各行)] アクティビティの本体に [代入] アクティビティを追加します。

    • [左辺値 (To)/宛先] フィールドに変数 strCurrentNo を追加します。
    • [プロパティ] パネルで、[右辺値 (Value)] フィールドに式 row("Number").ToString を追加します。
  10. もう 1 つの [代入] アクティビティを追加し、前のアクティビティの下に配置します。

    • [左辺値 (To)/宛先] フィールドに変数 selectedRow を追加します。
    • [プロパティ] パネルの [右辺値 (Value)] フィールドに式 Data2.Select("Number ="+strCurrentNo) を追加します。2 つの .csv ファイルで等しい値をフィルター処理するために Select(String) メソッドを使用します。
  11. 最後の [代入] アクティビティの下に [条件分岐 (if)] アクティビティを配置します。
    • [Condition] フィールドに式 drSelectedRows is Nothing or drSelectedRows.Count=0 を追加します。この条件は selectedRow 変数が無効か、行の数が 0 かを確認します。
  12. [データ行を追加] アクティビティを [条件分岐 (if)] アクティビティの [Then] セクションにドラッグします。

    • [プロパティ] パネルで、[列配列]フィールドに式 row.ItemArray を、[データ テーブル] フィールドに変数 newRow を追加します。
  13. [フローチャート] に戻ります。
  14. [シーケンス] コンテナーの下に [CSV に書き込み] アクティビティをドラッグして、接続します。
  • 作成するファイルの名前を [ファイル パス] フィールドに入力します。この場合、入力値は “Differences.csv” です。
  • [データ テーブル] フィールドに変数 newRow を追加します。
  • 最初の行をヘッダーとみなすために [ヘッダーを追加] チェック ボックスを選択します。

2 つの表の共通部分で新しい CSV ファイルを作成する

サンプルと同等のオートメーション プロセスは以下のように構築できます。

  1. [Differences] フローチャートの手順 1 - 10 を繰り返します。
  2. 新しいフローチャートSimilarities と名前を付けます。
  3. 2 つの [代入] アクティビティの下に [データ行を追加] をドラッグします。

    • [プロパティ] パネルで [列配列] フィールドに値 row.ItemArray を追加し、[データ テーブル] フィールドに変数 newRow を追加します。
  4. [フローチャート] に戻ります。
  5. [シーケンス] コンテナーの下に [CSV に書き込み] アクティビティをドラッグして、接続します。

    • 作成するファイルの名前を [ファイル パス] フィールドに入力します。この場合、入力値は “Similarities.csv” です。
    • [データ テーブル] フィールドに変数 newRow を追加します。
    • 最初の行をヘッダーとみなすために [ヘッダーを追加] チェック ボックスを選択します。
  6. オートメーションを保存します。
  7. プロセスを実行します。オートメーション プロセスは、データをフィルター処理し、2 つの新しいファイルを作成します。1 つは 2 つの元ファイルの差分で、もう 1 つは共通部分です。

Was this page helpful?

サポートを受ける
RPA について学ぶ - オートメーション コース
UiPath コミュニティ フォーラム
UiPath ロゴ (白)
信頼とセキュリティ
© 2005-2024 UiPath. All rights reserved.