2014-02-19 87 views
2

好日子计算器阅读XLSX/XLS文件 - 轨道4

我有这个控制器

def upload 
file_data = params[:data] 

#s = Roo::Excel.new(file_data.path) 
book = Spreadsheet.open file_data.path 

#--- continuous to read the file ---# 
end 

的问题是,它可以读取电子表格创业板.xls文件,但可“T读取.xlsx文件

相反的袋鼠宝石可以读取的.xls/.XLSX文件,但帕拉姆file_data.path没有为Excel.new功能的工作,显示了"is not an Excel file"错误

我发送excel文件在一个file_field_tag的视图上,当然是

任何想法的参数file_data.path stackoverflow?

回答

1

当您使用袋鼠宝石阅读xlsx文件,使用Excelx

if File.extname(file_data.path) == ".xlsx" 
    s = Roo::Excelx.new(file_data.path) 
    else 
    s = Roo::Excel.new(file_data.path) 
    end 
+0

不完全的问题,实际上是,当我上传一个.xls文件,在Roo的功能,'file_data.path'不会将其识别为Excel文件,但使用相同的'file_data.path'代码,它可以在Spreadsheet函数中识别它 – nnn7867