roo gem无法工作(NameError:未初始化的常量Excel)

时间:2014-01-07 09:59:57

标签: ruby excel

我在irb中运行以下代码:

irb(main):001:0> require 'rubygems'
=> false
irb(main):002:0> require 'roo'
=> true
irb(main):003:0> s = Excel.new("/Users/tangmonk/Desktop/zhongshikehua/import.xls")
NameError: uninitialized constant Excel

我试图联系宝石作者,但我没有得到回复。

我只想阅读一个excel文件,如果这个宝石效果不好,有人可以推荐其他宝石。

2 个答案:

答案 0 :(得分:6)

尝试以下代码:

require 'rubygems'
require 'roo'

Roo::Excel.new("/Users/tangmonk/Desktop/zhongshikehua/import.xls")

查看文档 - Usage并查看此GitHub Issue

答案 1 :(得分:0)

是的Arup钉了它。我在使用roo将xls转换为csv时遇到了同样的问题。

error我在加入之前得到了...... Roo :: Excel .....

': uninitialized constant Excel (NameError)
    from rooxls2csv.rb:7:in `glob'

工作代码。

#!/usr/bin/env ruby
require 'rubygems'
require 'roo'

pwd       = File.dirname(__FILE__)

Dir.glob("#{pwd}/*.xls") do |file|
  file_path = "#{pwd}/#{file}"
  file_basename = File.basename(file, ".xls")
  xls =Roo::Excel.new(file_path)
  xls.to_csv("#{pwd}/#{file_basename}.csv")
end