I need to get information from the xls file for that was involved gem 'roo'. When I try to read a file, I get an error.
Please help fix this error!
My code:
require 'roo'
require 'spreadsheet'
require 'open-uri'
x = Roo::Excel.new("http://EXAMPLE.COM/EXAMPLE.xls")
x.cell 31,'F'
RuntimeError: Unknown Codepage 0x906c from /home/hender/.rvm/gems/ruby-2.1.2/gems/spreadsheet-0.9.7/lib/spreadsheet/excel/reader.rb:75:in
block in encoding' from /home/hender/.rvm/gems/ruby-2.1.2/gems/spreadsheet-0.9.7/lib/spreadsheet/excel/reader.rb:74:in
fetch' from /home/hender/.rvm/gems/ruby-2.1.2/gems/spreadsheet-0.9.7/lib/spreadsheet/excel/reader.rb:74:inencoding' from /home/hender/.rvm/gems/ruby-2.1.2/gems/spreadsheet-0.9.7/lib/spreadsheet/excel/reader.rb:211:in
read_codepage' from /home/hender/.rvm/gems/ruby-2.1.2/gems/spreadsheet-0.9.7/lib/spreadsheet/excel/reader.rb:821:inread_workbook' from /home/hender/.rvm/gems/ruby-2.1.2/gems/spreadsheet-0.9.7/lib/spreadsheet/excel/reader.rb:135:in
read' from /home/hender/.rvm/gems/ruby-2.1.2/gems/spreadsheet-0.9.7/lib/spreadsheet/excel/workbook.rb:32:inopen' from /home/hender/.rvm/gems/ruby-2.1.2/gems/spreadsheet-0.9.7/lib/spreadsheet.rb:63:in
open' from /home/hender/.rvm/gems/ruby-2.1.2/gems/spreadsheet-0.9.7/lib/spreadsheet.rb:69:inopen' from /home/hender/.rvm/gems/ruby-2.1.2/gems/roo-1.13.2/lib/roo/excel.rb:40:in
block in initialize' from /home/hender/.rvm/gems/ruby-2.1.2/gems/roo-1.13.2/lib/roo/base.rb:565:inblock in make_tmpdir' from /home/hender/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/tmpdir.rb:88:in
mktmpdir' from /home/hender/.rvm/gems/ruby-2.1.2/gems/roo-1.13.2/lib/roo/base.rb:564:inmake_tmpdir' from /home/hender/.rvm/gems/ruby-2.1.2/gems/roo-1.13.2/lib/roo/excel.rb:31:in
initialize' from /home/hender/helloapp/app/models/mode.rb:26:innew' from /home/hender/helloapp/app/models/mode.rb:26:in
hello'
... 2 levels... from /home/hender/.rvm/gems/ruby-2.1.2/gems/railties-4.1.1/lib/rails/commands/console.rb:9:instart' from /home/hender/.rvm/gems/ruby-2.1.2/gems/railties-4.1.1/lib/rails/commands/commands_tasks.rb:69:in
console' from /home/hender/.rvm/gems/ruby-2.1.2/gems/railties-4.1.1/lib/rails/commands/commands_tasks.rb:40:inrun_command!' from /home/hender/.rvm/gems/ruby-2.1.2/gems/railties-4.1.1/lib/rails/commands.rb:17:in
' from /home/hender/.rvm/gems/ruby-2.1.2/gems/activesupport-4.1.1/lib/active_support/dependencies.rb:247:inrequire' from /home/hender/.rvm/gems/ruby-2.1.2/gems/activesupport-4.1.1/lib/active_support/dependencies.rb:247:in
block in require' from /home/hender/.rvm/gems/ruby-2.1.2/gems/activesupport-4.1.1/lib/active_support/dependencies.rb:232:inload_dependency' from /home/hender/.rvm/gems/ruby-2.1.2/gems/activesupport-4.1.1/lib/active_support/dependencies.rb:247:in
require' from /home/hender/helloapp/bin/rails:8:in<top (required)>' from /home/hender/.rvm/gems/ruby-2.1.2/gems/activesupport-4.1.1/lib/active_support/dependencies.rb:241:in
load' from /home/hender/.rvm/gems/ruby-2.1.2/gems/activesupport-4.1.1/lib/active_support/dependencies.rb:241:inblock in load' from /home/hender/.rvm/gems/ruby-2.1.2/gems/activesupport-4.1.1/lib/active_support/dependencies.rb:232:in
load_dependency' from /home/hender/.rvm/gems/ruby-2.1.2/gems/activesupport-4.1.1/lib/active_support/dependencies.rb:241:inload' from /home/hender/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in
require' from /home/hender/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:inrequire' from -e:1:in
'2.1.2 :004 > ^C 2.1.2 :004 >##
In my case i have to deal with a CODEPAGE problem with spreadsheet gem. After some research i found that is a format on the file itself that will depend on some characteristics of it.
Here some information from the Gem itself: https://github.com/zdavatz/spreadsheet/blob/master/lib/spreadsheet/excel/internals.rb#L15
My solution was grabbing the original file and send it to a online conversor. From there transform it to xls (no matter if it was already an xls format).
Wish it helps!