Tbpgr Blog

Employee Experience Engineer tbpgr(てぃーびー) のブログ

Ruby | BOM付きUTF-8のCSVファイルを出力してExcelで開けるようにする

概要

BOM付きUTF-8CSVファイルを出力してExcelで開けるようにする

詳細

BOM付きUTF-8CSVファイルを出力してExcelで開けるようにします

サンプル

# encoding: utf-8

class File
  def self.insert_bom(input_filename, output_filename)
    src = File.read(input_filename)
    File.open(output_filename, "w:UTF-8") do |f|
      src = '   ' + src
      src.setbyte(0, 0xEF)
      src.setbyte(1, 0xBB)
      src.setbyte(2, 0xBF)
      f.print src
    end
  end
end

file = $*[0]
exit unless File.exists? file

File.insert_bom(file, "#{File.basename(file, '.csv')}_bom.csv")

処理対象ファイル

タイトル1,タイトル2,タイトル3
行1_1,行1_2,行1_3
行2_1,行2_2,行2_3

実行

$ ruby bom_csv.rb unbom_csv.csv
$ ls unbom_csv*
unbom_csv.csv  unbom_csv_bom.csv

unbom_csv.csvExcelで開いたところ

unbom_csv_bom.csvExcelで開いたところ