こんにちは。
データテーブルをCSVファイルに出力するとき、任意の項目のみダブルクオートで囲んで出力したいです。(“aaa”,111,“bbb”,…)
CSVに書き込む(WriteCsvFile)アクティビティではそれらしいオプションが見当たらず、
普通に出力するとダブルクオートがない状態(aaa,111,bbb…)となります。
そこで、ForEachRowの繰り返しのなかで1項目ずつ編集することを試みたのですが、
string = row.Item(0).ToString
row.Item(0)=string.Concat(Chr(34), string, Chr(34))
上記のように編集してCSV出力したところ、なぜかダブルクオートが3個連続で出てしまいます。
“”“aaa”“”,111,“”“bbb”“”…
Chr(34)を文字列(“”“”)にしても同じ結果となります。
解決方法をご存じの方いらっしゃいましたら、教えていただきたいです。
よろしくお願いいたします。
Yoichi
(Yoichi)
2
こんにちは
CSVは各種方言がありますが、特殊な文字が含まれる場合はダブルクォートで囲む、
ダブルクォートで囲まれた文字列中にダブルクォートを記述する場合はダブルクォートを
2つ重ねる
という感じになるので
結果上記のような文字列になると思います。
ちなみにこれを実現したい目的は何になりますでしょうか?
単純に囲むだけですと、CSVとして問題になるケースもあるかもしれませんので。
1 Like
Yoichi
(Yoichi)
3
たびたびすみません
ちなみにですが、データに特殊な文字が含まれない前提で、すべての項目をダブルクォートで
囲んでよいなら、単純な文字列置換で実現できます。
置換の部分の式は以下です。
""""+strData.Trim.Replace(",",""",""").Replace(vbcrlf,""""+vbcrlf+"""")+""""
1 Like
ご回答ありがとうございます。
3個連続で出る理由が理解できました。(3個というより、項目を囲むためのダブルクオートとダブルクオートを文字列として扱うためのダブルクオート2つだったのですね)
目的ですが、既存でAccessで出力しているCSVファイルをUiPathで出力したいというものです。
既存のCSVファイルには特殊文字は含まれませんが、数字以外の文字が入る項目はダブルクォートで囲まれているので、既存に合わせるために実現したいです。
文字列置換の式、ありがとうございます!
やってみます。
1 Like
system
(system)
Closed
5
This topic was automatically closed 3 days after the last reply. New replies are no longer allowed.