无法使用Roo将.xls转换为.csv
问题描述:
我的代码的目标是处理目录中的所有.xls文件,并将它们全部转换为.csv。这在过去有效,但在更新Ruby和Roo之后,它显示下面的错误。我正在使用Ruby 1.9.3-p362和Roo 1.11.2。无法使用Roo将.xls转换为.csv
require 'rubygems'
require 'csv'
require 'iconv'
require 'mysql2'
require 'mysql'
require 'roo'
begin
Dir["#{@work_path}/*.xls"].each do |file|
begin
file_path = "#{file}"
file_basename = File.basename(file, ".xls")
xls = Excel.new(file_path)
xls.to_csv("#{@kenshoo_work_path}#{file_basename}.csv")
@log.info("Converted file #{file}")
FileUtils.remove(file)
@log.info("Deleted file #{file}")
rescue Exception => e
@log.warn("Unable to convert file: #{file_basename} into csv because #{e.message}")
end
end
end
对于每一个文件,我得到了以下错误消息:
Unable to convert file: #{file} into csv because uninitialized constant Excel
任何帮助表示赞赏。谢谢。
答
roo
在Roo::
名称空间内有Excel
类。您需要Roo::Excel
的older versions没有命名空间的类来代替的Excel
所有实例Roo::
下,这样可以解释为什么更新后您的代码破坏。
w00t!完美的作品。谢谢。 – analyticsPierce 2013-05-02 19:56:02