2007-10-06
■[Ruby] Excel ファイルの内容を Ruby を使って高速取得する
Rails には直接関係ない小ネタをひとつ。
Excel の中身を Ruby のプログラムから参照したいことがある。これは、次のように実現できる。win32/clipboard と win32ole という2つのライブラリを使う。
require 'rubygems' require "win32/clipboard" require 'win32ole' excel = WIN32OLE.new('Excel.Application') excel.visible = false excel.displayAlerts = false excel.workbooks.open 'filename' => 'C:\test1.xls' workbook = excel.workbooks(1) sheet = workbook.sheets(1) sheet.select excel.cells.select excel.selection.copy s = Win32::Clipboard.data excel.quit puts s #=> C:\test1.xls の最初のシートの中身が出力される。
単にシート全体をクリップボードにコピーし、その内容を取得しているだけ。どのように出力されるかというと、
| A B ----------- 1 | a b 2 | c d
という Excel シートの場合は、
a\tb\r\n c\t\d\r\n
となる。改行コードが \r\n で区切り文字がタブというわけだ。
注意
もしなければ win32-clipboard という gem をあらかじめ入れておくこと。
% gem install win32-clipboard
セキセイ
購入: 1人 クリック: 18回
購入: 1人 クリック: 18回
トラックバック - http://d.hatena.ne.jp/elm200/20071006/1191661248
リンク元
- 269 http://b.hatena.ne.jp/hotentry
- 197 http://d.hatena.ne.jp/
- 136 http://reader.livedoor.com/reader/
- 55 http://b.hatena.ne.jp/
- 52 http://b.hatena.ne.jp/entrylist?sort=hot
- 39 http://b.hatena.ne.jp/add?mode=confirm&title=Rails %u3067%u884C%u3053%u3046%uFF01 - Ruby on Rails %u3092%u5B66%u3076 - Excel %u30D5%u30A1%u30A4%u30EB%u306E%u5185%u5BB9%u3092 Ruby %u3092%u4F7F%u3063%u3066%u9AD8%u901F%u53D6%u5F97%u3059
- 37 http://www.google.com/reader/view/
- 33 http://www.google.co.jp/ig?hl=ja
- 30 http://b.hatena.ne.jp/hotentry?
- 21 http://clip.livedoor.com/


