Lazy Diary @ Hatena Blog

PowerShell / Java / miscellaneous things about software development, Tips & Gochas. CC BY-SA 4.0/Apache License 2.0

ExcelでUnicode CSVをインポート

Unicode(たとえばUTF-8)で保存されたCSVを、ダブルクリックしてExcelで開こうとすると、文字コードが正しく認識されなかったり、区切り文字が正しく認識されなかったりする。

SJISCSVと完璧に同じ、たとえば

  • ダブルクリックで開いてもメニューから「開く」で開いても、通常のCSVファイルを開いたときと同じ挙動になり、
  • テキストインポートウィザードでも文字コードUnicodeと判別され、
  • Unicode文字列を正しく表示でき、
  • 区切り文字が無視されたり誤認識されたりせず、
  • 要素中に改行文字や区切り文字を含めることができ、
  • ファイルのフォーマットと拡張子が矛盾しない

……という挙動をするファイルは、作れない。

いちばん近そうなのは、

  • BOMつきのUTF-16LEで保存した、
  • タブ区切り形式のファイルを
  • 拡張子を.csvにして保存する

という方法だが、

  • テキストインポートウィザードで文字コードSJISと判別される(Unicode文字列は正しく表示できる)
  • 要素中に改行文字を含めることができない
  • ファイルのフォーマットと拡張子が矛盾する

という点に関しては問題ありのまま。