如何用roo打开xls文件

时间:2015-10-18 04:53:25

标签: ruby-on-rails excel xls roo

我有一个" .xls"文件,我必须用roo打开它,它必须用rake打开。

这是我的rake文件:

ISEED

当我运行rake:exel时,我收到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 错误。从roo gem site我知道roo需要roo-xls gem,我在我的gemfile运行包安装上设置它,它没有帮助:(

当我将格式更改为xlsx时,它运行良好,但我必须将其打开为.xls,我的想法是我没有正确导入roo-xls gem。

任何帮助,想法都会非常有帮助。

1 个答案:

答案 0 :(得分:2)

我提出解决方案:) 改变:

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