LoginSignup
1
0

【UiPath】Excel特定範囲のデータ取得について

Last updated at Posted at 2024-03-20

はじめに

ロボでExcelデータを取得する際、DataTableを利用する機会が多いです。
データ取得する範囲がまとまっている場合、データ取得は容易ですが、形式によっては取得行に対して列名の重複やロボで処理しなくてもよい行がはいっているケースがあります。
今回は特定範囲のデータ取得方法をナレッジとして残します。

この記事の対象者

  • UiPath初学者
  • 特定範囲のデータテーブル取得方法について考えたい方

目次

  1. 開発環境紹介
  2. 処理要件確認
  3. 実装
  4. 解説

開発環境紹介

  • OS:Windows11
  • 開発ツール:UiPath Studio
  • バージョン:2023.10.0
  • ライセンス:Community License
  • モダン デザイン エクスペリエンス:いいえ
  • Microsoft Excel:2310
  • 本投稿の開発環境になっております
  • バージョンによっては画面が一部異なる可能性はございます

UiPath 依存関係

パッケージ名 バージョン
UiPath.Excel.Activities 2.22.2
UiPath.Mail.Activities 1.21.1
UiPath.System.Activities 23.10.2
UiPath.Testing.Activities 23.10.0
UiPath.UIAutomation.Activities 23.10.3

処理要件確認

  • 指定した範囲のデータテーブルのみを抽出する
  • データ取得範囲はA列~I列のみとする

Config.xlsx

image.png

サンプルデータ(連絡先取得台帳.xlsx)

image.png

データ取得範囲

image.png

テストデータに関して、個人情報テストデータジェネレーターを利用して作成しています。

実装

image.png

変数情報

名前 変数の型 スコープ 規定 注釈
dtSelectFileAll DataTable GetRangeDtSelectFile 全行から取得したデータテーブル 
dtGetRowCount Int32 GetRangeDtSelectFile 全行から取得した行数 

引数情報

名前 方向 引数の型 規定値 補足 注釈
in_Config 入力 Dictionary Config情報
in_SheetName 入力 String シート名
out_DtSelectFile 出力 DataTable 処理対象ファイルのデータテーブル
io_WbResultFile 入力/出力 WorkbookApplication UiPath.Excel.WorkbookApplication 処理対象ファイルのワークブック

解説

データテーブルを取得する場合、範囲取得を行う必要がある。
今回のケースの場合、5行目を軸に範囲取得を行えればよいのだが、5行目には「処理結果」が2個あるため列名の重複でデータテーブル取得ができません。そのため、下記の工程で指定範囲を取得するようにします。
1.5行目を軸にヘッダー追加を行わずデータテーブルを取得
image.png
2.行数を取得
image.png
3.取得した行数をもとに範囲取得を行う
image.png
4.指定範囲でデータテーブルを取得
image.png

実装補足

データテーブル全範囲取得

image.png
image.png

範囲を読み込み:台帳データ取得_全行「範囲」
in_Config("処理リスト_読込セル")

データテーブル指定範囲取得

image.png
image.png

範囲を読み込み:台帳データ取得_対象範囲「範囲」
in_Config("列名_No") & in_Config("ヘッダー行") & ":" & in_Config("列名_エラー内容") & dtGetRowCount -1 + Cint(in_Config("ヘッダー行"))

おわりに

今回は、データテーブルで指定範囲から取得する方法をまとめました。要件ヒアリング時に列名重複を避けていただければベストですが、業務の都合上で変更できないケースもあります。その際に考えた取得方法となります。他にも指定範囲のデータ取得方法は検討の余地がありますが、今回は解決の一例となります。
本記事で誰かの参考になれば幸いです。

参考サイト

個人情報テストデータジェネレーター

1
0
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
1
0