2015-02-10 2 views
1

Я использую рельсам 4 следующий код для импорта .xls:Импорт XLS файла в Rails 4 не работает Roo :: Excel.new

def self.open_spreadsheet(file) 
    case File.extname(file.original_filename) 
    when ".csv" then Roo::Csv.new(file.path, nil, :ignore) 
    when '.xls' then Roo::Excel.new(file.path, nil, :ignore) 
    when ".xlsx" then Roo::Excelx.new(file.path, nil, :ignore) 
    else raise "Unknown file type: #{file.original_filename}" 
    end 
end 

получаю ошибку при слежении

Supplying `packed` or `file_warning` as separate arguments to 
`Roo::Excel.new` is deprecated. Use an options hash 
instead.Started GET "/members" 

Может кто-нибудь скажите мне, как импортировать .xls?

ответ

1

Try This

def self.get_file_type(file) 
    File.extname(file.original_filename).gsub('.','') 
end 

def self.open_spreadsheet(file) 
    extension = get_file_type(file) 
    if extension.in?(%w(csv xls xlsx)) 
    Roo::Spreadsheet.open(file.path, extension: extension) 
    else 
    raise "Unknown file type: #{file.original_filename}" 
    end 
end 
+0

Спасибо за ответ, но это не работает для меня –

+0

Что ошибка это дает – pkrawat1

+0

@ pkrawat1 это старая почта, но это только помогло мне много, так что спасибо за что , Одна ошибка, которую я вижу в ней, и, вероятно, то, что сработало OP, заключается в том, что 'file_path' должен быть' file.path'. Как только я изменил это, он работал как шарм. – nicholas79171

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