テーブルの列の値の一括置換

下記のようなテーブルがありますが、名称列の値に不規則に半角や全角のスペースが入って、後続処理で名称からコードを取得する際にヒットしなくて困っております。
テーブルの元のデータはシステムから出力したデータのためスペースを削除することが難しいです。
テーブルの列の値から一括でスペースを除去する方法はありませんでしょうか。
行がとても多いため、繰り返し(各行)だと置換だけで1分以上かかってしまいます。
|コード|名称|
|1|あ あ|
|2|い い|
|3|う う|

HI @m03901

You can try with this expression

Assign: DTOutput= DtClone.Clone

DTOutput = (From r In DtInput.AsEnumerable
Select ia = r.ItemArray.toList
Select ic = ia.ConvertAll(Function (e) e.ToString.Trim.Replace(" “,”")).toArray()
Select DTOutput.Rows.Add(ic)).CopyToDataTable()

Regards
Gokul

2 Likes

HI @m03901

Check out the XAML file

DTRemoveSpace.xaml (7.1 KB)

Regards
Gokul

1 Like

hi @m03901

You can use Find\replace in modern activity

Checkout the steps here

Regards
Sudharsan

1 Like

こんにちは

全角半角スペース混在の場合、正規表現置換の方が良いと思います。

dt = dt.AsEnumerable.Select(Function(r) dt.Clone.LoadDataRow({r("コード"),System.Text.RegularExpressions.Regex.Replace(r("名称").ToString,"\s","")},False)).CopyToDataTable

他にも列がある場合は、InvokeCodeアクティビティを使った下記の方が良いかもしれません

dt.AsEnumerable.ToList.ForEach(
Sub(r)
    r("名称")=System.Text.RegularExpressions.Regex.Replace(r("名称").ToString,"\s","")
End Sub
)

Sample20221114-1aL.zip (4.6 KB)

1 Like

皆さま、本当にありがとうございます。
明日いろいろ試して実装したいと思います。

全角半角両方ある可能性があったので、こちらを試させていただきました。
無事にうまくいきました。
列が3列になってしまったので、1列分、カンマでつなげて入れたらうまくいきました。
ありがとうございました。

1 Like

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