2011-09-02 19 views
6

estoy tratando de leer un archivo excel en ruby ​​y luego tomar los datos e insertarlos en una base de datos mysql. Estoy usando las hojas de cálculo :: excel y mysql gems. por alguna razón por la que parece que no puede ser capaz de utilizar la gema hoja de cálculo para abrir el archivo para lectura ... este es mi códigoruby ​​excel reader, gema de la hoja de cálculo

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

Spreadsheet.client_encoding = 'UTF-8' 

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

b1 = book.worksheet('team1') 

me sale este error extraño cuando corro el guión

/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 

, leí en alguna parte que esta joya podría no ser compatible con los archivos .xlsb. No sé si esto es cierto o no, pero si es así, ¿alguien me puede decir cómo hacerlo, o si hay algo más? Estoy completamente perdido y agradecería cualquier ayuda con este error. gracias

+4

tuvo que convertir los archivos en 2003 xls – Crobos

Respuesta

5

¿Ya has echado un vistazo a roo? ->http://rubygems.org/gems/roo

+3

¡No funcionó para mí! – barbolo

+1

@barbolo: Puede parecer que el soporte xlsx no funciona, pero debe usar 'Excelx.new ' para cargarlo. Funciona de maravilla. –

+0

Tuve que votar abajo. Como pedir ayuda en un Linux y que se le pida que use Windows. – baash05

Cuestiones relacionadas