【问题标题】:Import xls file in Rails 4 not working Roo::Excel.new在 Rails 4 中导入 xls 文件不起作用 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?

【问题讨论】:

    标签: ruby-on-rails ruby ruby-on-rails-4 import-from-excel roo


    【解决方案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 感谢您指出这一点。很高兴它对您有所帮助。
    猜你喜欢
    • 2016-08-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-24
    • 1970-01-01
    • 2017-10-23
    相关资源
    最近更新 更多