【Excel2016】Excelから出力するCSV形式の各項目に、ダブルコーテーションを付与する方法

ソフトウェア

ExcelからCSVへの出力時に、各項目の文字列にダブルコーテーションが付与されずに困っているというご相談。
データベースへのインポートで、数字形式はダブルコーテーションなし、文字列タイプはダブルコーテーションありになっており、文字列形式の項目でインポートエラーになるようです。
現状のExcelでcsv形式出力時、文字列でも数字タイプであってもダブルコーテーションは付与されません。
今回は、そのような場合の回避策を試してみたいと思います。

手順

書式を変更する

全ての項目について、値の前後にダブルコーテーションを付与する。
全項目の書式設定を「!”G/標準!”;!”G/標準!”;!”G/標準!”;!”G/標準!」に変更する。

全項目値にダブルコーテーションが付与されますが、数値項目(画像では灰色部分)については書式を数値に変更する。

CSVでデータを整える

ExcelからCSV保存し、保存したファイルをテキストエディタで開きデータを整えます。
Excelでダブルコーテーションを付与した項目については、項目の前後は[“””]が付いています。

[“””]を[“]に文字列変換します。

[,,]を[,””,]に文字列変換します。

まとめ

Excelのインポート設定ではいろいろと細かな設定はできるのですが、エクスポートにはそのような機能が無く今回のような面倒な作業が発生します。
Excelのエクスポート機能で追加してもらいたいものですが・・・

データ加工後のインポート作業の参考になれば幸いです。

コメント

  1. 通りすがり より:

    なかなか難しい問題ですね。
    ちょっと読ませていただきました。
    読んでるところで気になったとこが2点、セル内にダブルクオートが入っている場合が考慮されていないのではないか、また日付型も未考慮ではないかと思いました。
    実験もせず指摘するのは気が引けましたので、とりあえず実験してみたところやはり問題が発生しています。
    実験したバージョンは2303です。
    ちなみに、ダブルクオートはそのままエスケープシーケンスで適切に処理されず、日付型は数値型に変換されてCSVになりますね。

    • 禅(XEN)@マルチエンジニア(管理者) より:

      コメントありがとうございます!

      確かにダブルクオートが途中に入っている場合や日付は考慮できていませんね・・・
      テスト結果までご報告頂き、感謝です!