0

在我的 Rails 应用程序中,我使用 Roo 处理电子表格,如果文件不是电子表格,我想处理 TypeError 异常。

begin
  xls = Roo::Excelx.new(@file_upload.file.path)       
rescue TypeError
  return redirect_to students_url, :flash => { :error => t("wrong_file_format") } 
end

如果文件是开放式办公室,我如何添加一个也尝试的案例?

xls = Roo::OpenOffice.new(@file_upload.file.path)
4

1 回答 1

0

这可以通过基于文件扩展名的决定来方便地完成。

begin
  case File.extname(file_path = @file_upload.file.path) # file's extension
    when ".xlsx" # excel extension
      xls = Roo::Excelx.new(file_path)
    when ".ods" # openoffice extension
      xls = Roo::OpenOffice.new(file_path)
    else
      raise TypeError
  end
rescue TypeError
  return redirect_to students_url, flash: {error: t("wrong_file_format")}
end

我希望我得到了正确的扩展。如果没有,您可以在代码中轻松修改它们。

于 2014-12-22T06:43:28.517 回答