rubyでExcel操作

既存のExcelデータを読み込んで色々やるってのは結構情報があった。特に以下のものが分かりやすかった。
Rubyist Magazine Win32OLE 活用法 【第 2 回】 Excel
しかし、新規にExcelファイルを作って保存するというのがなかなか見つからなかったのでちょっと苦労した。方法が分かったのでメモっておく。

require 'win32ole'

excel = WIN32OLE.new('Excel.Application')

begin
  book = excel.Workbooks.add
  book.Worksheets.each do |sheet|
    sheet.Cells.Item(1,1).Value = "hello, excel"
  end

  book.saveAs "E:/sample.xls"
ensure
  excel.Workbooks.Close
  excel.Quit
end

これでSheet1、Sheet2、Sheet3の左上のセルに「hello, excel」と記入されたExcelファイルが、Eドライブ直下にsample.xlsという名前でできる。
単に

  book.save

としても保存できるが、これだとBook1.xlsという名前でマイドキュメントに出来てしまう。Excelを新規で開いて保存するのと同じ。saveAsメソッドは「名前をつけて保存」と同じなのだ。