Ошибка с Roo.Любые гемы для разбора файлов .ods - PullRequest
4 голосов
/ 21 июня 2011

Я пытаюсь использовать roo gem для разбора электронной таблицы Openoffice.Однако я получаю следующую ошибку при запуске моего localhost

/ home / raison / .rvm / gems / ruby-1.9.2-p180 / gems / roo-1.9.3 / lib / roo / openoffice.rb: 3: в `require ': нет такого файла для загрузки - zip / zipfilesystem (LoadError)

из /home/raison/.rvm/gems/ruby-1.9.2-p180/gems/roo-1.9.3 / lib / roo / openoffice.rb: 3: в `'

из /home/raison/.rvm/gems/ruby-1.9.2-p180/gems/roo-1.9.3/lib / roo.rb: 68: в `require '

из /home/raison/.rvm/gems/ruby-1.9.2-p180/gems/roo-1.9.3/lib/roo.rb: 68: в `'

из /home/raison/.rvm/gems/ruby-1.9.2-p180/gems/bundler-1.0.15/lib/bundler/runtime.rb:68:in`require '

из /home/raison/.rvm/gems/ruby-1.9.2-p180/gems/bundler-1.0.15/lib/bundler/runtime.rb:68:in` block (2 уровня) требуется '

от /home/raison/.rvm/gems/ruby-1.9.2-p180/gems/bundler-1.0.15/lib/bundler/runtime.rb:66:in`each '

из блока /home/raison/.rvm/gems/ruby-1.9.2-p180/gems/bundler-1.0.15/lib/bundler/runtime.rb:66:in` вrequire '

из /home/raison/.rvm/gems/ruby-1.9.2-p180/gems/bundler-1.0.15/lib/bundler/runtime.rb:55:in `each'

из /home/raison/.rvm/gems/ruby-1.9.2-p180/gems/bundler-1.0.15/lib/bundler/runtime.rb:55:in `require '

из /home/raison/.rvm/gems/ruby-1.9.2-p180/gems/bundler-1.0.15/lib/bundler.rb:120:in `require '

из / home/raison/anna/config/application.rb:7:in `'

из /home/raison/.rvm/gems/ruby-1.9.2-p180/gems/railties-3.0.8/lib/rails/commands.rb:28:in `require '

из /home/raison/.rvm/gems/ruby-1.9.2-p180/gems/railties-3.0.8/lib/rails/commands.rb: 28: в блоке в

из /home/raison/.rvm/gems/ruby-1.9.2-p180/gems/railties-3.0.8/lib/rails/commands.rb: 27: в `tap '

из /home/raison/.rvm/gems/ruby-1.9.2-p180/gems/railties-3.0.8/lib/rails/commands.rb:27: в `'

из скрипта / rails: 6: в` require'

из скрипта / rails: 6: в `'

У меня уже установлен rubyzip.Может кто-нибудь помочь мне здесь?Также, пожалуйста, предложите несколько альтернативных гемов для разбора файлов .ods.

Ответы [ 2 ]

1 голос
/ 24 ноября 2014

Rspreadsheet позволяет читать, изменять и записывать файлы ods. Вот пример его основного использования

требуется 'rspreadsheet' book = Rspreadsheet.open ('./ test.ods') sheet = book.worksheets (1)

# get value of a cell B5 (there are more ways to do this)
sheet.B5                       # => 'cell value'
sheet[5,2]                     # => 'cell value'
sheet.rows(5).cells(2).value   # => 'cell value'

# set value of a cell B5
sheet.F5 = 'text'
sheet[5,2] = 7
sheet.cells(5,2).value = 1.78

# working with cell format
sheet.cells(5,2).format.bold = true
sheet.cells(5,2).format.background_color = '#FF0000'

# calculating sum of cells in row
sheet.rows(5).cellvalues.sum
sheet.rows(5).cells.sum{ |cell| cell.value.to_f }

# iterating over list of people and displaying the data

total = 0
sheet.rows.each do |row|
  puts "Sponsor #{row[1]} with email #{row[2]} has donated #{row[3]} USD."
  total += row[3].to_f
end
puts "Totally fundraised #{total} USD"

# saving file
book.save
book.save('different_filename.ods')

Проект находится в стадии активной разработки, и я использую его в своих проектах. Любые комментарии приветствуются. Если вы переносите функцию, вы можете заполнить запрос , и он будет реализован.

1 голос
/ 24 сентября 2011

В Gemfile

gem 'rubyzip',: require => 'zip / zipfilesystem'

...