Excelシートを読み取り、UiPathを介してセル値をさまざまなテキストフィールドに配置するにはどうすればよいですか?
私は次のようなExcelシートを持っています:
Excelの内容を読み、後で内容を繰り返すために、次のように内容を_Output Data Table
_に保存しました。
読み取り範囲-出力:
出力データテーブル
スクリーンショット:
最後に、text
opCVdatatableを繰り返し読み取り、テキストフィールドに書き込みます。したがって、必要な入力フィールドで、必要に応じてopCVdatatable
またはopCVdatatable+ "[k(enter)]"
について言及しました。
スクリーンショット:
しかし、UiPathは、opCVdatatable
を呼び出すたびに、出力データテーブルの先頭から開始するようです。
つまり、必要な各入力フィールドは、出力データテーブルに格納されているデータですべてのデータで繰り返しいっぱいになります。
誰かが私を助けてくれますか?
私の最初の推奨事項は、_Workbook: Read range activity
_を使用してExcelからデータを読み取ることです。これは、Excelが高速でバックグラウンドで動作し、Excelをシステムにインストールする必要がないためです。
次のようにシーケンスを開始します(ヘッダーの追加プロパティはチェックされていないことに注意してください)。
このアクティビティはすべての行項目を含む文字列を出力するため、_Output Data Table
_を使用する必要はありません。代わりに、データテーブル内のアイテムにアクセスし、それぞれを_type into
_の文字列として出力します(例:CVDatatable.Rows(0).Item(0).ToString
)。
iterationのテキストopCVdatatable
を読み、それらを書きたいと言いますテキストフィールドに。これはもう少し複雑ですが、例を示します。 _For Each Row
_アクティビティを使用して、CVDatatable
の各行をループし、必要に応じてindex
プロパティを設定できます。下記参照:
課題は、セレクターをここで正しく取得して動的にし、反復ごとに異なるテキストフィールドをターゲットにすることです。 _type into
_アクティビティのセレクターは、ターゲットとするシステムによって異なりますが、次に例を示します。
そしてこれのためのセレクター:
また、これはあなたがテストするための作業 [〜#〜] xaml [〜#〜] ファイルです。
お役に立てれば。
クリス
これは、別のより一般的なアプローチです。プロセス自体にターゲットを含める代わりに、Excelを変更してセレクターの一部を含めます。
列Bに識別子が含まれていることに注意してください。このIDは、使用するアプリケーションによって異なります。たとえば、これが私のサンプルアプリのようです。ご覧のとおり、最初のテキストボックスのIDは585、2番目のテキストボックスは586などです(UiPathに公開されている場合は、コントロールの名前を含むあらゆる種類の識別子を操作できることに注意してください)。
これで、ワークフローに複数のType Into
要素を追加する代わりに、1つだけ追加し、データテーブルの各行をループして、動的セレクターを作成します。
私の場合、Type Into
アクティビティのセレクターは次のようになります。
"<wnd cls='#32770' title='General' /><wnd ctrlid='" + row(1).ToString() + "' />"
これにより、Excelシートのみからプロセスを維持できます。マップする必要のある新しいフィールドがある場合は、それをシートに追加するだけです。ワークフローを変更する必要はありません。