2011-09-02 13 views
6

私はrubyでExcelファイルを読み込み、データを取り出してmysqlデータベースに挿入しようとしています。私はスプレッドシート:: ExcelとMySQLの宝石を使用しています。何らかの理由で私は、スクリプトruby​​ excel reader、spreadsheet gem

/usr/local/lib/ruby/gems/1.8/gems/ruby-ole-1.2.11.1/lib/ole/storage/base.rb:376:in `validate!': OLE2 signature is invalid (Ole::Storage::FormatError) 
    from /usr/local/lib/ruby/gems/1.8/gems/ruby-ole-1.2.11.1/lib/ole/storage/base.rb:368:in `initialize' 
    from /usr/local/lib/ruby/gems/1.8/gems/ruby-ole-1.2.11.1/lib/ole/storage/base.rb:110:in `new' 
    from /usr/local/lib/ruby/gems/1.8/gems/ruby-ole-1.2.11.1/lib/ole/storage/base.rb:110:in `load' 
    from /usr/local/lib/ruby/gems/1.8/gems/ruby-ole-1.2.11.1/lib/ole/storage/base.rb:77:in `initialize' 
    from /usr/local/lib/ruby/gems/1.8/gems/ruby-ole-1.2.11.1/lib/ole/storage/base.rb:83:in `new' 
    from /usr/local/lib/ruby/gems/1.8/gems/ruby-ole-1.2.11.1/lib/ole/storage/base.rb:83:in `open' 
    from /usr/local/lib/ruby/gems/1.8/gems/spreadsheet-0.6.5.8/lib/spreadsheet/excel/reader.rb:1144:in `setup' 
    from /usr/local/lib/ruby/gems/1.8/gems/spreadsheet-0.6.5.8/lib/spreadsheet/excel/reader.rb:121:in `read' 
    from /usr/local/lib/ruby/gems/1.8/gems/spreadsheet-0.6.5.8/lib/spreadsheet/excel/workbook.rb:32:in `open' 
    from /usr/local/lib/ruby/gems/1.8/gems/spreadsheet-0.6.5.8/lib/spreadsheet.rb:62:in `open' 
    from /usr/local/lib/ruby/gems/1.8/gems/spreadsheet-0.6.5.8/lib/spreadsheet.rb:68:in `open' 
    from sizes_importer2.rb:7 
を実行したときに、私は、この奇妙なエラーが出るこれは私のコード

require 'rubygems' 
require 'spreadsheet' 
require 'mysql' 

Spreadsheet.client_encoding = 'UTF-8' 

book = Spreadsheet.open '/home/data/teams.xlsb' 

b1 = book.worksheet('team1') 

です...読み取るためのファイルを開くには、スプレッドシートの宝石を使用することができるように見えることはできません

私はこの宝石が.xlsbファイルをサポートできないかもしれない場所を読んでいます。私はこれが本当であるかどうかわからないが、誰かが私にそれを周りに行く方法を教えてくれるのであれば、あるいは何か間違ったことがあれば?私は完全に失われており、このエラーの助けを感謝します。ありがとうございます

+4

ファイルを2003 xlsに変換する必要がありました。xls – Crobos

答えて

5

あなたはすでにロウを見ましたか? - >http://rubygems.org/gems/roo

+3

私のためには機能しませんでした。 – barbolo

+1

@ barbolo:xlsxのサポートはうまくいきませんが、 'Excelx.new 'を使って読み込んでください。魅力のように動作します。 –

+0

私は投票しなければならなかった。 Linuxでヘルプを求めたり、Windowsを使うように言われたりするようなもの。 – baash05