Bye Bye Moore

PoCソルジャーな零細事業主が作業メモを残すブログ

Rubyでエクセルホウガンシーと戦うにはspreadsheetを使う

糞重いオフィスソフトを立ち上げたく無いのにxlsファイルでの提出を要求された場合、
gem spreadsheetを使えばファイルの生成を楽に出来ます。
(2014/3/2 追記あり)

導入

$ gem install spreadsheet
Fetching: ruby-ole-1.2.11.7.gem (100%)
Successfully installed ruby-ole-1.2.11.7
Fetching: spreadsheet-0.9.6.gem (100%)
Successfully installed spreadsheet-0.9.6
Parsing documentation for ruby-ole-1.2.11.7
Installing ri documentation for ruby-ole-1.2.11.7
Parsing documentation for spreadsheet-0.9.6
Installing ri documentation for spreadsheet-0.9.6
2 gems installed

使い方

require 'rubygems'
require 'spreadsheet'

book = Spreadsheet::Workbook.new
sheet = book.create_worksheet
sheet.name = 'Sheet1'
10.times do |n|
  sheet[n,0] = n
  sheet[n,1] = n*n
  sheet[n,2] = "日本語表示"
end
book.write('sp_test.xls')

とやると、一列目に数値、二列目に二乗した値、三列目に「日本語表示」と出るエクセルファイルが生成されます。
既存のファイルを開いて編集する事もできます。

サポート状況

公式を見に行くと、1.9.3が最新のサポートらしいです。
2.0系でも、この程度の内容であれば動作します。

追記

2014/3/2追記
エクセルファイルと戦う光の戦士の皆さんに朗報です。
他にもgemがありました。
RubyでExcelファイルを扱うライブラリの比較 - Qiita
現状ではファイルの取り扱いに若干の不安があるspreadsheetよか、
読み込みにRoo
書き込みにAxlsx
というチョイスが良さげです。