Un jour, une gem

09/01/2012

Lundi c'est roo

gem install roo

La gem pour parser des .xls 

roo permet de parser des .xls très simplement. Par exemple, j’ai un fichier assez complexe avec plusieurs vues :

Ruby

require 'rubygems'
require 'roo'

doc = Excel.new("mondoc.xls")
# je veux lire la première feuille
doc.default_sheet = doc.sheets[0]
# la première cellule qui se trouvera en 1,A
p doc.cell(1,A)

Plutôt facile non ? Et si je veux lire du début à la fin ?

# la première ligne contient les intitulés des colonnes donc on passe à la deuxième
2.upto(doc.last_row) do |line|
  p doc.cell(line, 'A')
end

Mais roo ne fait pas que parser des .xls, elle permet aussi de parser des Google spreadsheets ou des documents au format .ods.

Par exemple avec Google :

Ruby

# Le Google doc est public mais cela ne fonctionne pas sans authentification pour le moment :)
doc = Google.new('0AtruLMjwj3hrdFp1Vm1sbjVuSTRLaFd2RjV3SExnM1E', 'adresse@gmail.com', 'mdpGmail')
2.upto(doc.last_row) do |line|
  p doc.cell(line,'A')
end

Quelques liens utiles :