Excelで開ける、Unicode文字列を含むCSVファイルを生成する方法。Microsoft Excel for Mac 2011で開けることを確認した。
Excelで開けるUnicode文書を作るポイントは以下の2点。
- UTF-16 LE with BOMで保存する
- UTF-8は文字化けして、UTF-16 BEはフリーズした
- タブ区切りで保存する
- カンマを使う場合はテキストファイルウィザードを使わなければならない
以下はExcelで開けるUnicodeなCSVを生成するためのRubyのコード。
require 'csv' csv = CSV.generate('', col_sep: "\t") do |csv| csv << %w(ID 氏名 メールアドレス) csv << [1, 'John', 'hoge@example.com'] end open('./sample.csv', 'w:UTF-16LE') do |f| f.write "\uFEFF" # BOM f.write csv end