2016-12-03 11 views
-1

Ich verwende Ruby 2.3 w mit Rails 4.2.7. Ich habe dies in meinem GEmfile ..."Kein gültiges Dateiformat" beim Analysieren einer Excel-Datei

gem 'creek' 

Ich versuche, bekam eine Excel („.xls“ und nicht „.xlsx“) Datei analysieren, wie so

sheet = creek.sheets[0] 
sheet.rows.each do |row| 
    my_object_time = service.create_my_object_time_obj(row, race_id) 
    if my_object_time.valid? 
    results.push(my_object_time) 
    else 
    puts "#{my_object_time.errors.full_messages}" 
    end 

aber ich habe den Fehler ...

RuntimeError: Not a valid file format. 
    from /Users/davea/.rvm/gems/ruby-2.3.0/gems/creek-1.1.2/lib/creek/book.rb:20:in `initialize' 
    from /Users/davea/Documents/workspace/myproject/app/services/xls_to_my_object_times_converter_service.rb:13:in `new' 
    from /Users/davea/Documents/workspace/myproject/app/services/xls_to_my_object_times_converter_service.rb:13:in `get_my_object_times' 
    from /Users/davea/Documents/workspace/myproject/app/services/xls_processor_service.rb:15:in `process_page_data' 
    from /Users/davea/Documents/workspace/myproject/app/services/abstract_import_service.rb:83:in `process_race_data' 
    from (irb):2 
    from /Users/davea/.rvm/gems/ruby-2.3.0/gems/railties-4.2.7.1/lib/rails/commands/console.rb:110:in `start' 
    from /Users/davea/.rvm/gems/ruby-2.3.0/gems/railties-4.2.7.1/lib/rails/commands/console.rb:9:in `start' 
    from /Users/davea/.rvm/gems/ruby-2.3.0/gems/railties-4.2.7.1/lib/rails/commands/commands_tasks.rb:68:in `console' 
    from /Users/davea/.rvm/gems/ruby-2.3.0/gems/railties-4.2.7.1/lib/rails/commands/commands_tasks.rb:39:in `run_command!' 
    from /Users/davea/.rvm/gems/ruby-2.3.0/gems/railties-4.2.7.1/lib/rails/commands.rb:17:in `<top (required)>' 
    from bin/rails:4:in `require' 
    from bin/rails:4:in `<main>' 

auf der Linie "creek = Creek :: Book.new file_location". Was gibt? Ich bin offen für die Verwendung eines anderen Edelsteins zum Analysieren der Excel-Datei, wenn sie ein Blatt analysieren und Zellen und Werte in einem Hash-Format angeben kann.

+0

Sie versuchen, ein xls-Format zu analysieren, aber Bach parst nur xlsx-Format. –

Antwort

0

Nun, Not a valid file format ist ziemlich selbsterklärend.

Creek documentation sagen Sie im Titel, dass es ein Parser für großen Excel

Stream (xlsx und xlsm-Dateien).

Ich hatte gute Erfahrungen mit spreadsheet gem.

0

Da andere am selben Punkt ohne die einfache Erklärung enden könnten, dass die Datei keine xlsx-Datei ist, dachte ich, ich würde hinzufügen, dass das "Kein gültiges Dateiformat" basierend auf der Dateierweiterung ausgelöst wird eine Option, die Verlängerung zu ignorieren, wie folgt aus:

Creek::Book.new path, check_file_extension: false 

(Beispiel aus dem test_spec Bach genommen)

Verwandte Themen