csv_string = FasterCSV.generate do |csv|
# Aquí la generación del csv
end
send_data csv_string, :filename => 'nombre.xls'
Pero me he encontrado en una aplicación que el cliente pide directamente un Excel para evitar la pantalla de importar CSV. He encontrado estas alternativas:
- Librerias Win32OLE, pero esta opción no me vale ya que el servidor es Linux
- La gema Spreadsheet-Excel , que genera formato Excel 95
- Generar una tabla HTML y ponerle las cabeceras de excel
- Generar un XML para Excel 2003 tal y como cuentan en la wiki de rubyonrails
xml.Style 'ss:ID' => 'Header' do
xml.Font 'ss:Bold' => '1'
end
Y aplicar ese estilo a las celdas de la cabecera
xml.Cell 'ss:StyleID'=>'Header' do
El único problema que me he encontrado es que OpenOffice no reconoce un .xls en formato XML, así que para abrirlo con Calc, hay que renombrarlo a .xml. Con Office se abre sin problemas.
Si no me equivoco, el ejemplo que comentas ahora está aquí: http://oldwiki.rubyonrails.org/rails/pages/HowToExportToExcel
ResponderEliminar