データの頭のゼロがとれてしまう際の対応について(For each row)

For each rowを使用した際にデータの頭のゼロがとれてしまう際の対応について
こんにちは。
UiPathのFor each rowを使用した際の挙動について
質問させていただきます。

以下のようなエクセルがあります。(行数は可変です)
A列 B列 C列
null 0001 佐藤
null 0002 鈴木
null 0003 田中

For each rowを用いてA列に計算式を入れようとすると、
処理後にB列の数値の頭の0が消えてしまい以下のようになってしまいます。
A列 B列 C列
ああ 1 佐藤
いい 2 鈴木
うう 3 田中

どのようにすればB列をそのまま保持できるでしょうか。

方法はいくつか考えられるのですが、Read RangeアクティビティのPreserveFormatオプションにチェックを入れることが一つあげられます。
ただ、読み込みに通常より時間がかかるようになりますので、大量データが含まれるExcelファイルを読み込むような場合はお気を付けください。

1 Like

Rokolibroさん
返信ありがとうございます。
ご指摘のPreserveFormatは日本語版の"表示形式を維持"かと思うのですが
そこにチェックを入れても頭のゼロは消えてしまいました。

なお現在の作りとしては以下のようになっております。

<UiPath>
Excelアプリケーションスコープ
範囲を読み込み ヘッダーの追加✔ 表示形式を維持✔
繰り返し(各行)
代入 row(“列1” = XXX)
範囲に書き込み
ワークブックを閉じる

<エクセル>
列1 列2 列3
001 佐藤
002 鈴木
003 田中

以上、よろしくお願いします。

列の構成が最初にポストされたものと異なってしまっているのですが、
代入する値が0001~0003ということでしょうか?

こんにちは

EXCELに書き込んだ際に数値として扱われていることが原因かと思います。
対応案はいくつかあるかと思いますが
(案1)
各行処理する際に、列2のデータに文字列をあらわす’(アポストロフィ)を付与する処理を加える。

(案2)
範囲書き込みを行うのではなく
各行の処理を行う際にA列のセルにのみ、都度値を書き込む
(行数が多い場合は、AutoSaveをOFFにして、最後にSaveWorbookしてください)

あたりはいかがでしょううか?

列の構成が最初にポストされたものと異なってしまっているのですが、

このフォーラム、行頭の半角スペースは反映されないので、結果ずれが生じているのかと...

1 Like

Rokolibroさん、Yoichiさん
ご返信ありがとうございます。

列の構成が最初にポストされたものと異なってしまっているのですが、
代入する値が0001~0003ということでしょうか?

すみません、Yoichiさんのご指摘通りで行頭の半角が消えて列がずれていました。
質問の初めに提示したような
「一つ目の列がブランク、二つ目の列に数字、三つ目の列に名前」
といった構成です。

(案1)
各行処理する際に、列2のデータに文字列をあらわす’(アポストロフィ)を付与する処理を加える。

こちらの方法で実現することができました。
ありがとうございました。

(案2)
範囲書き込みを行うのではなく
各行の処理を行う際にA列のセルにのみ、都度値を書き込む
(行数が多い場合は、AutoSaveをOFFにして、最後にSaveWorbookしてください)

こちらですが範囲をA列のみに設定すると最終行が判断できなくなってしまうようでした。

ご回答ありがとうございました。

1 Like

This topic was automatically closed 3 days after the last reply. New replies are no longer allowed.