Excelの中身が空の場合

Excelに情報を書き込んで、その後データの読み込みする処理を作っていますが、書き込んだデータが0件(Excelの中身のデータがない)の場合、読み込み時にエラーとなります。

そのため、0件でも正常に処理するまたは、Excelの中身が0件かの判断を入れたいのですが、どのような実装が考えられますでしょうか?

Hi @111161

Use try catch and then use read rang e and then give condition as Dt.Rows.Count>0

then process rows in else set a flag as row(“Status”)=0

Thanks
Ashwin S

I tried but some error happened.
ワークフローを終了の理由または例外に、何を設定すればよろしいでしょうか?
SheetRead.Rows.Count == 0を理由に設定しましたが、うまくいきません

DataTabel.Rows.count = 0
という条件を通じて判別可能です。

理由のところには、String型のデータを入れる必要があるかと思います。表示されているエラーの情報を参照してください。

トライキャッチがうまくいきません
Tryの箇所で、エクセルから読み込んだデータを、データテーブル型のSheetReadに格納しています
またエラーはBoorlean型からString型に変換できませんとなります
どうすればエラー対処できますでしょうか?
やりたいことはあくまで、SheetReadが0レコードの際に、Uipathを終了したいとなります。

こんにちは

文字列型なので例えば

"行数が0です"

みたいな感じでOKかと...

「理由」の欄は、「どのようなときに終了させるか」ではなく、「終了させる際に表示させるメッセージ」を指定する項目です。
ですので、SheetRead.Rows.Count > 0 は、この位置に含めるものではありません。

読み込んだデータテーブルの行数が0であることの判定は、「範囲を読み込み」アクティビティの下に、「True か確認」アクティビティを含め、そのプロパティのうち「式」に、SheetRead.Rows.Count > 0 を入れてください。
もし0件であった場合、この条件式が True にならないのですが、このアクティビティは True でないときには例外を発生させます。そうすると、その例外がキャッチされて、「ワークフローを終了」アクティビティに遷移し、「理由」で入力した文字列が表示されて終了する、という流れです。

cheez_RPAさん
ありがとうございます!
理由欄は、条件ではなく単にメッセージなのですね。
さて、添付のように作成しましたが、いまだエラーとなります
何をしているかといいますと、データテーブル上の値を、エクセルのSheet1に書き込み、その後データテーブルが0件であればと条件いれましたが、Trueか確認で”条件が定義されていません”とエラーとなってしまいます。なぜでしょうか?

所望のワークフローの全体像が正しく認識できていないかもしれませんので、確認させてください。
おおよそ下記の内容であっていますでしょうか。

  • 任意のExcelファイルからデータを読み込み、SheetRead に格納する
  • この時点で、もし SheetRead の行数が0であれば、エラーを発生させワークフローを終了させる
  • SheetRead のデータを任意のExcelファイルに書き込む
1 Like

cheez_RPAさん
大変お返事遅れ、申し訳ございません
試行錯誤した結果、うまくいきました。
具体的には0件のExcelを読み込む処理をトライキャッチでくるみ、
exceptionの際に、メッセージログ出力→ワークフロー終了にて、Main処理を抜けるようにしました。

1 Like

解決したようで何よりです!

解決に至った投稿を「解決策」(Solution)としてマークしていただけますと助かります!

2 Likes