2015-10-18 57 views
2

我有一個「.xls」文件,我必須用roo打開它,它必須用耙子打開。如何用roo打開xls文件

這是我耙文件:

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 

當我運行rake:EXEL,我得到一個Ole::Storage::FormatError: OLE2 signature is invalid錯誤。從roo gem site我知道袋鼠需要roo-xls寶石,我把它放在我的Gemfile運行捆綁安裝,並didn`t幫助:(

當我改變格式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

相關問題