Excelですぐ開けるUnicodeなCSVをRubyで生成する

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

コメントを残す