2015-10-18 2 views
2

У меня есть файл .xls, и я должен открыть его с помощью roo, и его нужно открыть с помощью rake.Как открыть 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: '[email protected]', 
       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 site я знаю, что ИЙ нужен roo-xls камня, я поставил его на моей пачке Gemfile выполнения установки, и это не было `помощь :(

Когда я изменить формат XLSX это работает хорошо, но я должен открыть его как. XLS, моя мысль в том, что I`am не импортируя РОО-XLs камень правильно

Любая помощь, идея будет очень полезно

+0

Возможный дубликат [Ole :: Storage :: FormatError: подпись OLE2 недопустима] (http://stackoverflow.com/questions/25498454/olestorageformaterror-ole2-signature-is-invalid) –

ответ

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

Смежные вопросы