koeだめ 過去アーカイブ[〜2013-12-14]

最新情報は https://www.pixiv.net/fanbox/creator/3780274 にて

Excelを意識せずRubyからExcelワークブックを読み込むXLSクラス

東京Ruby会議01の折、自分の発表の中で少し触れたXLSクラスとは、RubyからExcelワークブックを読み込み、Rubyのハッシュとして扱うことができるライブラリです。
内部でWin32OLEとExcel(COM)を使っているので、Windows専用です。

Rubyforgeからhttpで直接ダウンロードして使ってください。

foreachメソッド

指定されたExcelファイルを開き、指定されたワークシートに格納されてるデータを順次ハッシュとして取り出します。

  • 引数1:Excelファイルのフルパス
  • 引数2:利用するワークシート(シート番号orシート名で指定)
  • ブロックを渡す。ブロックではrecordハッシュを使う。

CSVクラスのforeachメソッドと同じ様に使えるはずです。

呼び出し
# c:\foo.xlsワークブックの1番目のワークシートを利用
# 各行をハッシュで取り出し配列resultに追加する
result = []
XLS.foreach('c:\foo.xls', 1){ |record|
  result << record
}
c:\foo.xlsワークブックの1番目のワークシート

  • 1行目:a,b,c

1行目がハッシュのキーとなる

  • 2行目:1,2,3
  • 3行目:4,5,あ
実行結果
result #=> [{"a"=>1, "b"=>2, "c"=>3, {"a"=>4, "b"=>5, "c"=>"あ"}]