ArgumentError:导入.xlsx文件扩展名

时间:2015-06-18 06:54:08

标签: ruby-on-rails-4

导入excel文件时出现问题,当扩展名为.xls时,它正常工作但扩展名为.xlsx时会出现参数错误。

def 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, packed: nil, file_warning: :ignore)
    when ".xlsx" then Roo::Excelx.new(file.path, nil, :ignore)
    else raise "Unknown file type: #{file.original_filename}"
  end
end

3 个答案:

答案 0 :(得分:3)

尝试

 Roo::Excel.new(file.path, packed: false, file_warning: :ignore)

答案 1 :(得分:1)

如果查看文档,Roo :: Excelx.new(initialize方法)只接受两个参数。

http://www.rubydoc.info/gems/roo/Roo/Excelx

将第6行更改为:

when ".xlsx" then Roo::Excelx.new(file.path, :ignore)

答案 2 :(得分:0)

我已经解决了我的问题,在那种情况下做了一些改变

 when ".xlsx" then Roo::Excelx.new(file.path, packed: nil, file_warning: :ignore)