.csv 内の二重引用符をエスケープする

.csv 内の二重引用符をエスケープする

次のような値を持つ.csvファイルがあります

Abc,3/4"×3/4"
Paper,Blue,2"
Abc 45 xyz 3/4""

問題は、メモ帳で開くとこれらの値が

"Abc,3/4""×3/4"""
"Paper,Blue,2"""
"Abc 45 xyz 3/4""""

二重引用符を囲む余分な二重引用符により、.csv ファイルのみを受け入れるアプリケーションでファイルをアップロードするときに問題が発生します。

メモ帳で余分な二重引用符を使用せずにこれらの値をそのまま表示する方法はありますか?

"Abc,3/4"×3/4""
"Paper,Blue,2""
"Abc 45 xyz 3/4"""

答え1

csv ファイルには実際の標準はありません。 RFC4180公開されていますが、「いかなる種類のインターネット標準も規定していない

MS Excel (および他の多くのプログラム) が text/csv ファイルを生成する場合、テキスト指定子として二重引用符が使用されるため、フィールド内のカンマ、改行、二重引用符は文字どおりに扱われます。

VBAを使わない方法の1つは

  • 二重引用符を他の文字(例:チルダ~)に置き換えます。
  • csvファイルを生成する
  • 次に、テキストエディタ(メモ帳、メモ帳++など)を使用して、結果のファイルで他の文字を二重引用符に置き換えます。
  • 次に、csv ファイルのこの機能を認識しないと思われるプログラムに送信します。

関連情報