如何用roo打开xls文件

我有一个“.xls”文件,我必须用roo打开它,它必须用耙子打开。

这是我的耙文件:

require 'roo' namespace :exel do task open: :environment do workbook = Roo::Excel.new("lib/tasks/users.xls") password_length = 6 password = Devise.friendly_token.first(password_length) p password username = "#{workbook.row(5)[0]}#{workbook.row(5)[1]}".slice!(0..7).downcase p username test_user = User.create!(email: 'someone@something.com', f_name: workbook.row(5)[0], l_name: workbook.row(5)[1], username: username, validity_date: workbook.row(5)[3], :password => password, :password_confirmation => password) p test_user end end 

而当我运行耙:exel,我得到一个Ole::Storage::FormatError: OLE2 signature is invalid错误。 从roo gem站点我知道roo需要roo-xls gem,我把它设置在我的gemfile运行bundle install上,并且没有帮助:(

当我把格式改成xlsx的时候效果很好,但是我必须打开它为.xls,我的想法是我没有正确地导入roo-xls gem。

任何帮助,想法将是非常有益的。

我用解决scheme:)来改变:

 workbook = Roo::Excel.new("lib/tasks/users.xls") 

至:

 workbook = Roo::Spreadsheet.open("lib/tasks/users.xls", extension: :xlsx) 

这样我就不必更改文件,因为它将打开为xlsx文件,它将适合我,在另一边,代码如下:

 workbook = Roo::Excelx.new("lib/tasks/users.xls", extension: :xlsx) 

返回一个错误: TypeError: lib/tasks/users.xls is not an Excel 2007 file