Exportar a excel 2 (guardar cada campo en una col)

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] Peak Obsession

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, ;-)))