ruby-on-rails – 上传OLE2签名的Roo电子表格无效

前端之家收集整理的这篇文章主要介绍了ruby-on-rails – 上传OLE2签名的Roo电子表格无效前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
是的,所以我检查了Roo.伟大的宝石和所有,并有一个真正的基本应用程序,没有没有模型.和基本的控制器,类和视图,我似乎无法上传电子表格,因为我得到OLE2签名是无效的错误.我有以下基本设置

调节器

  1. class SpreadsheetServiceController < ApplicationController
  2.  
  3. def new
  4. end
  5.  
  6. def create
  7. parser = SpreadsheetTagService.new(params[:spreadsheet][:file])
  8.  
  9. respond_to do |format|
  10. format.all {render :json => 'Done'}
  11. end
  12. end
  13. end

SpreadsheetTagService

  1. class SpreadsheetTagService
  2. include Roo
  3.  
  4. def initialize(uploaded_file)
  5. @tmp_destination = "#{Rails.root}/tmp/tag-import.xls"
  6. @file_path = save_file_to_tmp(uploaded_file)
  7. @file = File.new(@file_path)
  8. read_file(@file)
  9. end
  10.  
  11. private
  12. def save_file_to_tmp(uploaded_file)
  13. FileUtils.mv(uploaded_file.tempfile.path,@tmp_destination )
  14. @tmp_destination
  15. end
  16.  
  17. def read_file(file)
  18. @spreadsheet = open_spreadsheet(file)
  19. @spreadsheet.each_with_pagename do |name,sheet|
  20. Rails.logger.debug( sheet )
  21. end
  22. end
  23.  
  24. def open_spreadsheet(file)
  25. case File.extname(file.path)
  26. when ".csv" then Csv.new(file.path,nil,:ignore)
  27. when ".xls" then Excel.new(file.path,:ignore)
  28. when ".xlsx" then Excelx.new(file.path,:ignore)
  29. else raise "Unknown file type: #{file.original_filename}"
  30. end
  31. end
  32.  
  33. end

视图

  1. <%= form_tag spreadsheetupload_url,multipart: true do %>
  2. <%= file_field_tag :file %>
  3. <%= submit_tag "Import" %>
  4. <% end %>

解决方法

而不是.xls格式使用.xlsx格式.然后它将工作.

对我而言,这是有效的.

猜你在找的Ruby相关文章