How to fix the error in 'spreadsheet' gem (Unknown Codepage 0x906c)?

667 Views Asked by At

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:in encoding' 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:in read_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:in open' 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:in open' 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:in block 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:in make_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:in new' from /home/hender/helloapp/app/models/mode.rb:26:inhello'
... 2 levels... from /home/hender/.rvm/gems/ruby-2.1.2/gems/railties-4.1.1/lib/rails/commands/console.rb:9:in start' 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:in run_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:in require' from /home/hender/.rvm/gems/ruby-2.1.2/gems/activesupport-4.1.1/lib/active_support/dependencies.rb:247:inblock in require' 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:247:inrequire' 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:inload' from /home/hender/.rvm/gems/ruby-2.1.2/gems/activesupport-4.1.1/lib/active_support/dependencies.rb:241:in block in load' 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:241:in load' 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:in require' from -e:1:in'2.1.2 :004 > ^C 2.1.2 :004 >##

1

There are 1 best solutions below

0
On

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!