Importando archivos de Excel y OpenOffice con roo +
roo es una gema para ruby que permite importar archivos de excel “.xls”, excel 2007 “.xlsx” y OpenOffice “.ods” asi como google Spreadsheets en línea. Es muy simple usar esta gema, lo primero que deben de hacer es instalar la gema
gem install roo
Si no tienen conexion a internet es posible descargar el archivo de http://rubyforge.org/projects/roo/ una ves descargado vayan hasta el directorio donde este la gema en su computadora y ejecuten el siguiente comando de acuerdo al archivo que hayan descargado, en caso de que hayan descargado la version 1.2.2
gem isntall roo1.2.2.gem
Una ves teniendo la gema instalada comencemos a ver como se usa esta gema por ejemplo para importar datos de un archivo Excel “.xls”, creen una acción en un controlador
def importar
require 'roo'
@excel = Excel.new("hoja.xls") # Indiquen la dirección donde se encuentra el archivo
@excel.default_sheet = @excel.sheets.first # Definimos página por defecto
end
Lo que hacemos aquí es leer el archivo del lugar donde tengamos este archivo y luego creamos una vista simple para poder ver lo que se importa, entonces creen la vista importar.html.erb
<table> <% 1.upto(50) do |fila| %> <tr><td><%= @excel.cell(fila,'A') %></td> <td><%= @excel.cell(fila,'B') %></td></tr> <% end %> </table>
Aquí se comienza a leer las celdas que uno quiera, como pueden ver el acceso es similar al de excel, usando una letra del alfabeto para poder acceder a la columna y un número para poder acceder a la fila, según lo que pude comprobar la importación más rápida la realiza de archivos “.xls”, traten de que los archivos no sean muy grandes ya que si el archivo es grande tardara mucho tiempo en importar la información.