1

我的 HTML 代码,这里传递 xslx 文件进行解析,

<form method="post" action="/home/parse_xlsx" enctype="multipart/form-data">
   Upload XSLX File <input type="file" name="xlsx_file" id="xlsx_file"  />
   <input type="submit" value="Post"/>
</form>

我的控制器代码,

def parse_xlsx
    xlsxFile = params[:xlsx_file]
    prefix_tmp_path = xlsxFile.path
    filename = xlsxFile.original_filename
    fullname = File.join(prefix_tmp_path,filename) 

    require 'roo'
    s = Roo::Excelx.new(fullname)

    for i in 1..14
      puts s.cell(i,3) 
    end
end

给我错误,

file /tmp/RackMultipart20130910-10043-u4nqsc/CMS.xlsx does not exist

当我在控制台上运行以下代码时,我将我的“CMS.xlsx”文件保存在 rails 根文件夹中并且它正在运行而没有任何错误。

require 'roo'
s = Roo::Excelx.new("CMS.xlsx")
for i in 1..14
  puts s.cell(i,3) 
end

请解释我哪里出错了。

4

1 回答 1

0

xlsxFile.path 是文件的位置,您不必加入文件名。如果需要保存文件,可以在将文件移动到文件位置时将其重命名为原始文件名

尝试

 s = Roo::Excelx.new(xlsxFile.path)
于 2013-09-10T11:18:07.720 回答