Tema: excel en jsp
Ver Mensaje Individual
  #2 (permalink)  
Antiguo 22/03/2013, 10:55
Avatar de chuidiang
chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 19 años, 7 meses
Puntos: 454
Respuesta: excel en jsp

Hola:

La solución fácil es genrar el fichero excel en un sitio accesible desde el navegador y colocar un enlace en tu página a ese fichero. Al hacer click el navegador te ofrecerá descargarlo. Esta opción vale si el excel está generado antes de mostrarle al usuario la página con el link de descarga.

Si el excel se debe generar al vuelo, la otra opción, un pelín más compleja, crea un jsp o servlet cuyo único cometido sea crear el excel y devolverlo, ese jsp o servlet no debe enviar absolutamente nada más al navegador.

En ese jsp o servlet, fija el content-type del header a application/vnd.ms-excel y si quieres el nombre de fichero puedes ponerlo tambíén el el header

Código jsp:
Ver original
  1. <%
  2. response.setHeader("Content-type","application/vnd.ms-excel");
  3. response.setHeader("Content-disposition","inline; filename=nombre.xls");
  4. ...
  5. %>

Y ahora sólo tienes que abrir el fichero excel como si fuera un fichero binario cualquiera, leerlo con read() como si fueran bytes e ir enviándolo por el response

Código jsp:
Ver original
  1. <%
  2. abre fichero excel
  3. mientras haya bytes {
  4.    lee bytes
  5.    response.getOutputStream().write(bytes);
  6. }
  7. response.flush();
  8. response.close();
  9. %>

En un servlet es más fácil, en un jsp tienes el problema de que no puedes escribir nada hacia el navegador y eso incluye retornos de carro entre tags jsp. Aquí tienes un ejemplo con un pdf y se menciona el problema este de los retornos de carro http://stackoverflow.com/questions/1...-this-response

Se bueno.
__________________
Apuntes Java
Wiki de Programación