我有一个" .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。
任何帮助,想法都会非常有帮助。
答案 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