0
0
前提
VBAのマクロで作成したCSVファイルを、PostgreSQLのテーブルにCOPYコマンドでインポートする作業をしています。
発生している問題
COPYコマンドを使用するためには、CSVファイルの時点で全ての値に「全ての入力値をダブルクォーテーション( ” )でくくらないといけない」という問題があります。
それならばとExcelでCSVで書き出そうとしても、Excelには「CSV書き出し時にデータをダブルクオーテーションで囲む」オプションがありません。
対応策
以下のURLを参考にして、全ての値がダブルクオーテーションで囲まれたCSVを作成しました。
●テストに役立つ機能紹介 – Excelで全ての値にダブルクオーテーションが付いたCSVを作る方法
- 「セルの書式設定」でユーザー定義:「!”G/標準!”;!”G/標準!”;!”G/標準!”;!”G/標準!”」を入力する
- 「名前を付けて保存」で「CSV (コンマ区切り) (*.csv)」で保存する
- テキストエディタ(今回は「NewQx」)でCSVファイルを開き、コマンドで「 “”” 」を「 ” 」に置換する
- 「空白データにも『””』を定義しないといけない」ので、コマンドで「 ,, 」を「 ,””, 」に置換する
- もう1回、4を実行する (1回だけだと全部が置換されないため)
実現したいこと
今回は目的通りのCSVを作成できましたが、テキストエディタを使用する手間がどうしてもかかります。
今後もデータベースにCSVファイルを差し込む作業は続くので、もっと簡単にダブルクオーテーションで囲まれたCSVファイルを作成できたらいいなと思っています。
また、この他のwebアプリでCSVファイルを使用する際、「全ての値をダブルクオーテーションで囲まれた」ものでなければならない場合がしばしばあるようです。
そもそもこうした機能に対して需要が無い、というのが現状なのかもしれませんが、実装されない何か事情があるのか気になっています。
ご意見をいただけると幸いです。
よろしくお願いいたします。
補足情報(FW/ツールのバージョンなど)
PC:Windows11
Excelのバージョン:Microsoft 365
QxEditorのバージョン:α 0.90
回答8件
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。