如何修复“电子表格”gem 中的错误(未知代码页 0x906c)?

问题描述 投票:0回答:1

我需要从 xls 文件中获取涉及 gem 'roo' 的信息。 当我尝试读取文件时,出现错误。

请帮助修复此错误!

我的代码:

require 'roo'
require 'spreadsheet'
require 'open-uri'

x = Roo::Excel.new("http://EXAMPLE.COM/EXAMPLE.xls")
x.cell 31,'F'

运行时错误:来自 /home/hender/.rvm/gems/ruby-2.1.2/gems/spreadsheet-0.9.7/lib/spreadsheet/excel/reader.rb:75:in 的未知代码页 0x906c

block in encoding' from /home/hender/.rvm/gems/ruby-2.1.2/gems/spreadsheet-0.9.7/lib/spreadsheet/excel/reader.rb:74:in

从
  /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
读取代码页'来自
  /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
读自
  /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
打开自
  /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
阻止初始化'
  /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'来自
  /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
初始化来自 /home/hender/helloapp/app/models/mode.rb:26:in
  
new' from /home/hender/helloapp/app/models/mode.rb:26:in
你好
... 2 级...从 /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
控制台' 来自
  /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
' 来自
  /home/hender/.rvm/gems/ruby-2.1.2/gems/activesupport-4.1.1/lib/active_support/dependency.rb:247:in 
require' 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/dependency.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:in
require'来自/home/hender/helloapp/bin/轨道:8:在
<top (required)>' from /home/hender/.rvm/gems/ruby-2.1.2/gems/activesupport-4.1.1/lib/active_support/dependencies.rb:241:in
加载'来自
  /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:in
load_dependency' 来自
  /home/hender/.rvm/gems/ruby-2.1.2/gems/activesupport-4.1.1/lib/active_support/dependency.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' 来自
  /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 >##

ruby-on-rails ruby rubygems spreadsheet roo-gem
1个回答
0
投票
就我而言,我必须使用电子表格 gem 处理代码页问题。经过一番研究,我发现这是文件本身的一种格式,取决于它的某些特征。

以下是 Gem 本身的一些信息:

https://github.com/zdavatz/spreadsheet/blob/master/lib/spreadsheet/excel/internals.rb#L15

我的解决方案是获取原始文件并将其发送到在线转换器。从那里将其转换为 xls(无论它是否已经是 xls 格式)。

希望有帮助!

© www.soinside.com 2019 - 2024. All rights reserved.