在 Rails 4 中导入 xls 文件不起作用 Roo::Excel.new

Posted

技术标签:

【中文标题】在 Rails 4 中导入 xls 文件不起作用 Roo::Excel.new【英文标题】:Import xls file in Rails 4 not working Roo::Excel.new 【发布时间】:2015-02-10 17:34:34 【问题描述】:

我正在使用rails 4下面的代码来导入.xls:

def self.open_spreadsheet(file)
  case File.extname(file.original_filename)
    when ".csv" then Roo::Csv.new(file.path, nil, :ignore)
    when '.xls' then Roo::Excel.new(file.path, nil, :ignore)
    when ".xlsx" then Roo::Excelx.new(file.path, nil, :ignore)
    else raise "Unknown file type: #file.original_filename"
  end
end

得到以下错误

Supplying `packed` or `file_warning` as separate arguments to
`Roo::Excel.new` is deprecated. Use an options hash
instead.Started GET "/members"

谁能告诉我如何导入 .xls?

【问题讨论】:

【参考方案1】:

试试这个

def self.get_file_type(file)
  File.extname(file.original_filename).gsub('.','')
end

def self.open_spreadsheet(file)
  extension = get_file_type(file)
  if extension.in?(%w(csv xls xlsx))
    Roo::Spreadsheet.open(file.path, extension: extension)
  else
    raise "Unknown file type: #file.original_filename"
  end
end

【讨论】:

@pkrawat1 这是一篇较旧的帖子,但它对我有很大帮助,非常感谢。我在其中看到的一个错误可能是让 OP 出错的原因是 file_path 应该是 file.path。一旦我改变了它,它就像一个魅力。 @nicholas79171 感谢您指出这一点。很高兴它对您有所帮助。

以上是关于在 Rails 4 中导入 xls 文件不起作用 Roo::Excel.new的主要内容,如果未能解决你的问题,请参考以下文章

在 vs 代码中的 python 中导入 cv2 不起作用

在 Rails 中导入 Excel 文件 - 未初始化的 Constant Hospital::Excel

python从Microsoft Excel文件中导入数据

如何在 Grails 4.0.3 中导入专有库

在 DataGridView 中导入文本文件,C#

java如何在指定目录中导入类