ExcelやCSVを読み込み、DataTableで使いたい値をインデックスで指定する際に、いつもExcelの画面を見ながら「Aが0、Bが1、Cが2…」と数えながらインデックスを確認していました。
その時にExcelみたいに使いたい値を「H5」のようにセル位置で指定すればデータを取得できないかと考え、Dictionaryを使ってDataTableをExcelのように扱う方法を考えました。
CreateExcelTableについて
DataTableをDictionaryに変換し、Excelのように「A1」や「B2」とセル位置を指定してデータを取り出すことが出来るようにしています。
- 取得したい値をExcelのセル位置で指定することができるのでインデックス値の計算が不要
- 変数名(”セル位置”)で値を取得できるため、入力が短くてすむ
- 繰り返し処理を行うときに、cnt, iなどのカウンター用の変数を用意して列 + cnt.ToStringと指定するため、めんどくさい。
- DataTableをDictionaryに移しているので、データ量が膨大だと無駄に処理時間が増えてしまう
CreateExcelTableのダウンロード
GitHubにxmalを公開しているのでこちらから「Clone or download」➡「Download ZIP」を選択してダウンロードして使用してください。

CreateExcelTableの使い方
ダウンロードが完了したら、任意のプロジェクトフォルダ内に「CreateExcelTable.xmal」ファイルを配置してください。
配置が完了したら、UiPathでプロジェクトを開いてください。

Main実行
「CreateExcelTable.xmal」をダブルクリックして、「デバッグ用」を選択し、Ctrl + Dを押してコメントアウトしてください。

「Main.xmal」で、ワークフローファイルを呼び出し
を配置してください。
配置が完了したら、…をクリックして、「CreateExcelTable.xmal」を選択して開くをクリックしてください。


ワークフローファイルを呼び出し
の「引数をインポート」をクリックしてください。

値の欄でCtrl + Kを押して、任意の名前で変数を作成してください。
プロジェクトファイルで実際に利用をする場合は、短い変数名を使用すると参照するときに楽だと思います。

et("B3")
のように変数名("セル位置")
で実際のデータを取得することができます。

“b3”のように小文字で入力すると、エラーになってしまうので注意してください。
デバッグ実行
「CreateExcelTable.xmal」をダブルクリックし、実行を押してください。
「デバッグ用」をコメントアウトしている場合は、Ctrl + Eを押して、コメントアウトを解除してください。
「CreateExcelTable.xmal」をダブルクリックし、実行を押してください。

CreateExcelTableの実行手順
1.ファイル選択
実行すると以下のポップアップが表示されるので、OKをクリックします。

ファイル選択画面で、ExcelファイルかCSVファイルを選択してください。
ExcelとCSV以外のファイルには対応していないので、選択するとエラーになってしまいます。

2.ヘッダー列作成選択
ヘッダー列を作成するか確認するポップアップが表示されます。
作成する場合は「はい」、しない場合は「いいえ」を選択してください。

以下の画像のデータを読み込んだときの、ヘッダー列ありとなしの出力結果は下段に記載しているので、参照してください。

ヘッダー列あり

ヘッダー列なし

3.Excel選択時の設定
CSVファイルを選択した場合は、「2.ヘッダー列作成選択」で終了です。
Excelファイルを選択した場合は、以下のように「シート名」と「範囲読み込み位置」がデフォルト設定で良いか確認するポップアップが表示されます。

「いいえ」を選択した場合は以下のように入力ダイアログが表示されるので、「シート名」と「範囲読み込み位置」を入力してください。


コメント