rubyでEXCEL
もちろんWin32 OLEとかを使う方法もあるけど、それ以外にもいろいろライブラリはある。
https://rubygems.org/search?utf8=%E2%9C%93&query=excel
先頭のparseexcelは今はspreadsheetになっている。
gem | xlsx? | 書き込み? | 備考 |
spreadsheet | NG | OK | 読み書きできて実装も良さげ |
roo | OK | NG | 日本語読むのはOK。実装がイマイチな噂あり |
あと、 rubyじゃないけど、 libxlsっていうのもある。
http://libxls.sourceforge.net/
コレ使ったgemとかあった気がしたんだけど見つからんかった。
spreadsheet試してみたけど・・・
Spreadsheet.open "/path/to/file.xls"
spreadsheet動いた
Spreadsheet.open "/path/to/file.xls"
っていうのは実はirbで確かめていたんだけど、正確にはopenメソッドが帰ってこないんじゃなくて、irbに結果を出力されるために自動的に呼び出されるinspectメソッドが帰ってこないことが判明。
だからirbで試す場合こんな感じでやるべし。
$ irb -rspreadsheet 1.9.3-head :001 > book = Spreadsheet.open "tmp/atsumeyo-ze.xls"; nil => nil 1.9.3-head :002 > book.class => Spreadsheet::Excel::Workbook
bookのinspectが実行されないように、 ;nil をつけないとダメ。
spreadsheetで読み込みできることは確認できました。
spreadsheetで変更すると壊れる
既存の.xlsファイルを開いて既存のシートの既存のセルを上書きしたり、シートを追加してみたりしましたが、データが壊れてしまうようです・・・。残念。