Bye Bye Moore

猫マンション建築の野望を胸に零細事業主として資本主義の荒波に漕ぎ出したアラサー男の技術メモ

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
というチョイスが良さげです。