gorby
(gorby)
1
こんにちは。
UiPath Studio 2023.4.0 Community Editionを利用中です。
下記画像のようなINPUT.xlsxをExcel Read RangeアクティビティでDataTable変数dt_INPUTに取得して、For Each Rowアクティビティで某サイトに書き込むワークフローを作成中です。
Excel Read RangeアクティビティでDataTable変数dt_INPUTにデータを取得する際、Excelのデータが存在しない行に、Nothingまたは空文字列または空白文字列が存在した場合除外できるよう、Else Ifアクティビティで条件文を書きたいのですが、下記で合っていますでしょうか?
なお、INPUT.xlsx1行目と2行目の列名は連結しています。
Not (String.IsNullOrWhiteSpace(row(“ACME_System1_Vendor_TaxID”).ToString) AndAlso String.IsNullOrWhiteSpace(row("ACME_System1_“ACME_System1_Name”).ToString) AndAlso 途中省略String.IsNullOrWhiteSpace(row(“ACME_System1_Country”).ToString))
@gorby
はい、あなたのしていることは正しいです
あなたも使うことができます
Not ((row(“ACME_System1_Vendor_TaxID”).ToString.trim).equals(String.empty) AndAlso …
ありがとう
Yoichi
(Yoichi)
3
こんにちは
意図としては、当該行のすべての列項目が、Nothing,空文字列、空白であればスキップということでしょうか?
おおむね問題ないと思いますが、row(“xx”)がnothingの場合上記では例外になりますので、より厳密に記述するなら
Not ((row("ACME_System1_Vendor_TaxID") is Nothing OrElse String.IsNullOrWhiteSpace(row("ACME_System1_Vendor_TaxID").ToString)) AndAlso ....
のようにnull判定だけを先に行います。
また列数が多いと式が非常に長くなり可読性が落ちますので
not row.ItemArray.All(Function(o) (o is Nothing OrElse String.IsNullOrWhiteSpace(o.ToString)))
のように記述してもよいかもです。
gorby
(gorby)
4
いつもありがとうございます。
1点教えてください。WhiteSpaceが意味する空白文字列は半角スペースと全角スペース両方を意味するという認識で合ってますでしょうか?
gorby
(gorby)
5
文字列がNothingという意味は「該当String変数が存在するが、どこからも参照されていない」という意味で合っていますか?
Yoichi
(Yoichi)
6
半角・全角スペースともに含まれます。それ以外にタブや改行なども該当します。
文字列がNothingという意味は「該当String変数が存在するが、どこからも参照されていない」という意味で合っていますか?
違います。変数自体の被参照状況は関係ありません。
Nothing (null)とは、参照型変数において、データ格納先への参照が保持されていない状態です。
値型と参照型については以下参照ください