como puse en unos post anteriores, para crear excel y Zip en ruby, se necesitan 2 gemas.
bueno aqui el codigo que sirve para aquello, un poco modificado para que se entienda
#inicio de pagina .rb ( esto va en los controllers )
# incluyo iconv por la siemple razon que los acentos en UTF8 se cambian cuando la codificación de caracteres es diferente
require 'iconv'
# la gema de excel
require "spreadsheet/excel"
include Spreadsheet
# para ZIP
require 'zip/zip'
# inicio de codigo
class Excel < style="color: rgb(255, 255, 51);"> layout nil
def excel
# pongo fecha solo para saber cuando se crearon los excel en formato aca de dia-mes-año
fecha =Date.today.strftime("%d-%m-%Y")
#aqui pongo el nombre del archivo a crear
nombre_archivo = "/tmp/excel_#{fecha}.xls"
# creo una pequeña funcion para cambiar la codificacion de carateres de utf8 a occidental
ic = Iconv.new('WINDOWS-1252', 'UTF-8')
# creando el libro excel
workbook = Excel.new(nombre_archivo)
# añado una hoja ( alternativo nombre hoja )
worksheet = workbook.add_worksheet("alternativo")
worksheet.store_colinfo(first=0, last=2, 20, ixfe=0x0F, 0)
# mas info
#escribiendo en la hoja
worksheet.write(FILA,COLUMNA, DATOS)
#cerrando el libro
workbook.close
#cerrando en iconv
ic.close
#creacion archivo ZIP
@archivo = "#{RAILS_ROOT}/tmp/empresas.zip"
Zip::ZipFile.open(@archivo, Zip::ZipFile::CREATE) { |zipfile|
zipfile.add(File.basename(nombre_archivo),nombre_archivo)
}
#enviando el archivo a descarga del excel
send_file(nombre_archivo, :stream => false)
#enviando el archivo a descarga ZIP
send_file(@archivo, :stream => false)
#eliminado el archivo del temporal....
FileUtils.rm(nombre_archivo)
FileUtils.rm(@archivo)
end
end
Suscribirse a:
Enviar comentarios (Atom)
4 comentarios:
Al final me vas a hacer mirar esto del ruby... hay version del entorno de desarrollo para windows?
asi es...
http://www.rubyonrails.org.es/ chequea esta pagina
http://instantrails.rubyforge.org/ para llegar e instalar en windows
pillado y probando gracias , brujo
Publicar un comentario