¿Cómo permitir que el usuario descargue los datos en la database a un file de hoja de Excel desde la aplicación web en Java / Struts?

Quiero generar un informe que incluya una hoja de Excel que se genera a partir de los datos de la database. Estoy usando Apache POI HSSF para crear el file de hoja de Excel en el model.

Ahora, ¿cómo dejar que el usuario descargue el file que he creado?

Solo usa un servlet. Feed response.getOutputStream() a POI HSSF para escribir el libro de trabajo. El bit más importante es el encabezado de respuesta Content-Disposition . Si lo configura en un attachment , el browser mostrará un dialog Guardar como .

 response.setContentType("application/vnd.ms-excel"); response.setHeader("Content-Disposition", "attachment; filename=name.xls"); WritableWorkbook workBook = Workbook.createWorkbook(response.getOutputStream()); // ... 

Luego, permita que la URL de descarga apunte a ese servlet, si es necesario, con algunos parameters de request o información de ruta.