Cómo procesar hojas de cálculo con Ruby
written on 02-23-2008 | comments

Ya hace un tiempo escribí unos pequeños ejemplos de tratamiento de hojas de cálculo Excel desde Ruby, que nos permitía importar y exportar datos.

Ahora acabo de probar roo, una gema para leer hojas de cálculo en formato ODS (OpenOffice), XLS (Excel) e incluso Google Spreadsheet. Para ODS y XLS sólo tiene soporte de lectura, pero para Google Spreadsheet también de escritura.

Aquí os dejo un ejemplo de cómo leer una hoja de cálculo de OpenOffice, sacar datos de ella y mostrarlo en formato YAML, que después podremos importar fácilmente desde Rails. Aunque la propia gema roo dispone de un método .to_yaml, no conseguí hacerlo funcionar así que lo pinté a pata.

# ods.rb
require 'rubygems'
require 'roo'
 
oo = Openoffice.new("plantas.ods")
oo.default_sheet = oo.sheets.first
2.upto(oo.last_row) do |line|
  nombre = oo.cell(line, 'A')
  familia = oo.cell(line, 'S')

  puts "planta#{line}:\n  nombre: #{nombre}\n  familia: #{familia}\n\n" 
end

Para ejecutarlo y salvar el fichero YAML, directamente desde consola:

$ ruby ods.rb > plantas.yml
Back to the list of posts
blog comments powered by Disqus