Excelに「CSV書き出し時にダブルクオーテーションで囲む」オプションが無いのはなぜでしょうか

前提

VBAのマクロで作成したCSVファイルを、PostgreSQLのテーブルにCOPYコマンドでインポートする作業をしています。

発生している問題

COPYコマンドを使用するためには、CSVファイルの時点で全ての値に「全ての入力値をダブルクォーテーション( ” )でくくらないといけない」という問題があります。
それならばとExcelでCSVで書き出そうとしても、Excelには「CSV書き出し時にデータをダブルクオーテーションで囲む」オプションがありません。

対応策

以下のURLを参考にして、全ての値がダブルクオーテーションで囲まれたCSVを作成しました。

●テストに役立つ機能紹介 – Excelで全ての値にダブルクオーテーションが付いたCSVを作る方法

  1. 「セルの書式設定」でユーザー定義:「!”G/標準!”;!”G/標準!”;!”G/標準!”;!”G/標準!”」を入力する
  2. 「名前を付けて保存」で「CSV (コンマ区切り) (*.csv)」で保存する
  3. テキストエディタ(今回は「NewQx」)でCSVファイルを開き、コマンドで「 “”” 」を「 ” 」に置換する
  4. 「空白データにも『””』を定義しないといけない」ので、コマンドで「 ,, 」を「 ,””, 」に置換する
  5. もう1回、4を実行する (1回だけだと全部が置換されないため)

実現したいこと

今回は目的通りのCSVを作成できましたが、テキストエディタを使用する手間がどうしてもかかります。
今後もデータベースにCSVファイルを差し込む作業は続くので、もっと簡単にダブルクオーテーションで囲まれたCSVファイルを作成できたらいいなと思っています。
また、この他のwebアプリでCSVファイルを使用する際、「全ての値をダブルクオーテーションで囲まれた」ものでなければならない場合がしばしばあるようです。
そもそもこうした機能に対して需要が無い、というのが現状なのかもしれませんが、実装されない何か事情があるのか気になっています。
ご意見をいただけると幸いです。
よろしくお願いいたします。

補足情報(FW/ツールのバージョンなど)

PC:Windows11
Excelのバージョン:Microsoft 365
QxEditorのバージョン:α 0.90

コメントを投稿

0 コメント