hace unos dias jaime me paso este codigo,
para guardar una salida en excel;
class ExportExcelController < ApplicationController
def orders
CSV::Writer.generate(output = “”) do |csv|
Order.find(:all).each do |order|
csv << [order.id, order.name]
end
end
send_data(output,
:type => “application/vnd.ms-excel”,
:filename => “orders.csv”)
end
end
es genial, ahora me gustaria poder guardar cada uno de los campos en una
columna diferente, agradeceria q me indicases como encontrar referencias
al respecto.
Recordar que tenemos Ruby para ampliar nuestras posibilidades, con
rubyspreadsheet [1], te permite generar hojas (en formato Excel 95), que
podrás leer en MS-Excel y en Gnumeric y en cualquier plataforma. Además
no requiere Windows, OLE tampoco MS-Excel.
HarÃas algo cómo lo siguiente :
Cargas los módulos
require “spreadsheet/excel”
include Spreadsheet
Crear el libro
workbook = Excel.new(“test.xls”)
Crear las hojas
worksheet1 = workbook.add_worksheet(“Hoja1”)
worksheet2 = workbook.add_worksheet(“Hoja2”)
Escribir en las hojas especificando las celdas.
worksheet1.write(0,0,“Hello”,format)
worksheet1.write(1,1,[“Matz”,“Larry”,“Guido”])
Cierras el libro
workbook.close
Otra alternativa es exportar un archivo XML a Excel. [2]
[1] http://rubyspreadsheet.sourceforge.net/
[2] http://wiki.rubyonrails.com/rails/pages/HowToExportToExcel
Espero te sirva.
Jaime Mora R.
Si observas la definición de esta celda :
worksheet1.write(0,0,“Hello”,format)
Hace referencia a un objeto format que previamente debe estar definido :
format = workbook.add_format(:color=>“blue”,:bold=>1,:underline=>1)
Esto te permite crear formatos. De hecho existen otras 2 formas de
hacerlo, en la documentación lo encuentras.
Espero te sirva.
Jaime Mora R.
permite hasta crear diferentes hojas, ;-)))