WriteCSVの空白データの取り扱いについて

UipathのWriteCSVアクティビティについて確認したいことがございます。

現在DBをUipathのexectqueryアクティビティでSELECTを行い、
上記で取得したDatatableをWriteCSVアクティビティでCSVファイルに出力しています。

CSVファイルに出力したときに、ブランクが入力されているデータはダブルクオーテーションで囲まれ、それ以外のデータはダブルクオーテーションで囲まれていません。
(区切り文字は一律カンマであるため特に問題なし)

WriteCSVですべてのデータをダブルクオーテーションでかこむ設定や
またはすべてのデータをダブルクオーテーションで囲まないというような出力はできますか?
(生成したデータテーブルの中身を置換して編集処理をすることはデータが編集されてしまう可能性があるため最終手段と考えております。)

宜しくお願いいたします。

こんにちは

ダブルクォートを外す対象がスペースだけでしたら、OutputDataTableアクティビティで一旦文字列にしたあとで、WriteTextFileアクティビティでテキストファイル(拡張子は.csvで)として書き出してみてください。

まずは動作を確認いただければと思います。

1 Like

http://www.kasai.fm/wiki/rfc4180jp

このページによると、「5. (レコード中の) 各フィールドは、それぞれダブルクォーテーションで囲んでも囲わなくてもよい」とありますが、「 6. 改行( CRLF )、ダブルクォーテーション、カンマを含むフィールドは、ダブルクォーテーションで囲むべきである。」という一文もあります。

プログラマ的な見方では、改行( CRLF )、ダブルクォーテーション、カンマを含むかどうか判断してダブルクォーテーションで括るのなら、高速化を求め、数値型以外はダブルクォーテーションで括ってしまえ!と思ってしまいますね。

ですので、WriteCSVアクティビティも、ダブルクォーテーションで括る、括らないモードは制御しにくいでしょうね。

例えば、そのような制御できるアクティビティを独自に作成し、変にデータを編集してしまわない事を担保し、プロジェクト内で展開してみるってのはダメですか?

ヘッダーを自分で消す処理をしてしまえば、やりたいことができることを確認しました。

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

2 Likes

是非@ Yoichiさんの返信の解決策にチェックをお願いしますね。

1 Like

ご回答と解決策チェックのご連携ありがとうございます。

時間があれば上記のアクティビティの作成もやってみたいのですが、今はあまり時間がなく。。。

区切り文字の指定ができるなら、囲み文字の指定も出来ないものかと考えていましたが、
事情がありそうですね。

1 Like

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