UiPathのEXCELファイル読み込み、どのアクティビティを使えばいい?
これまで以下2つの記事の通り、EXCELファイルを読み込むための2つのアクティビティを紹介してきました。
範囲を読み込み(Read Range)を使う方法(ファイル全体を読みこむ)
セルを読み込み(Read Cell)を使う方法(ファイルの一部を読みこむ)
アクティビティの使い方を覚えるのも重要ですが、これらをどのようなときに使うべきかも重要です。
いくつかのケースを参考にしながらどちらを使うのが適切か考えてみましょう。
1.Excel型のデータテーブル
TEST1 | TEST2 | TEST3 |
1 | あああ | 1000 |
2 | いいい | 2000 |
4 | ええええ | 4000 |
3 | うううう | 3000 |
上の通り、1行目に列名、2行目以降にそのデータが入っているパターンです。
これは「範囲を読み込み(Read Range)」で読み込んで、繰り返し (各行)(For Each Row)で繰り返し処理をするのが適切なことが多いかと思います。
仮に取る場所が確定している(たとえば2列目の3行目等)としても、こういった形の場合、
何行目に何が入るかというところまでちゃんと把握できていない限りは危ないでしょう。
そう言った可能性がある場合は読み込んだdatatable変数に対して、
繰り返し (各行)(For Each Row)で条件分岐をしたり、データテーブルをフィルタリング(filter data table)を使うことをお勧めします。
2.Excel型の書類
いわゆるEXCEL様式という書類のような用途で使用するEXCELファイルになります。
人間の見た目では自然なのですが、実際の中身はセル結合、空白行、空白列などがぐちゃぐちゃで、
データとしては非常に扱いずらいです。
ただし、様式として項目そのものの場所が変わることは少ないという特徴もありますので、
こういった場合はセルを読み込み(Read Cell)でセルごとに取得する方がよいでしょう。
というかそのままでは範囲を読み込み(Read Range)ではまともに取得できないと思われます。
項目が多すぎるなどで、変数をいちいち作るのがめんどくさくて範囲を読み込み(Read Range)しか使いたくないという場合は、
もう1つシートを作り、EXCELの数式でデータテーブルにすることで1行だけのテーブルとすれば、
範囲を読み込み(Read Range)でも扱うことは可能です。項目の位置が頻繁に動く場合もこういった対処が有効です。