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