フォルダーにある複数のエクセルを順番に読み込む

お疲れ様です
1つのエクセルを指定し、あるキーワードを含むセルを循環で読み込み、ある値を取得し出力用エクセルに保存まではできたのですが、以下を実装したいと考えております。

・フォルダーをダイアログなどで指定
・フォルダー内にある複数エクセルを、上記処理を実施し、順々に読み込む
・読み込んで全てのデータを、出力用に一括保存する

参考となります情報頂けますと幸いです。

・フォルダを選択っていうアクティビティがあったはずなので、それで選べます!

その後、
Directory.GetFiles(選択したフォルダ, ”*.xlsx”)
でフォルダ内のExcelファイルを取得できます。
(xlsのExcelがあったらこれではうまくいきませんが)

このフォルダをループで回して処理をすれば良いと思います!

2 Likes

もし、拡張パッケージを使用可能であれば、UiPathTeam.Basic.Activitiesというパッケージの中に、「ファイルパスの一覧を取得」というアクティビティがあります。
このアクティビティの「ファイルのフィルター」プロパティを以下のように設定すれば、xlsxという拡張子のみのファイルパス一覧を返却してくれます。

“*.xlsx”

もし拡張パッケージが利用不可能な場合、Directory.GetFiles関数で拡張子を指定して検索する場合、余分なファイルまで取得されるケースに対しては、以下のように、GetFilesは全量取得し、その後Linqでフィルターするやり方をお勧めします。

https://amidagamine.com/notes/3778

n-shiumiさん!
ありがとうございました。
ForEachにてsystem.IO.Directory.GetFiles(“指定するパス”)にて、フォルダー内部のファイルを取得し、処理を進めることができました。

2 Likes

Yoshidaさん
コメントありがとうございました!
拡張パッケージUiPathTeam.Basic.Activitiesを探したのですが、ヒットしませんでした。
パッケージ管理で調べたのですが、何か操作など特別に必要なのでしょうか?

Linqのやり方、別途試してみようかと思います!

こんにちは。
以下のサイトでBasicアクティビティの導入手順を詳しく紹介なさっていますので、ご参照ください。

https://bit.ly/2NJGhnh

1 Like

Masaakiさん
ありがとうございました。
無事Basicパックの導入ができました!