Abrir excell via pagina JSP ou via Servlet

2 respostas
J

Como faço para fazer um download de um arquivo excel de um diretorio via jsp ou servlet
Pois consegui via codigo na servlet gerar em um contexto do apache gerar o excell, mais não consigo abrir este arquivo via servlet e nen em pagina html e jsp
por favor me ajudem.
segue o codigo que gera o excell, o pdf e o html

String pathJasper = getServletContext().getRealPath("/WEB-INF/classes/relatorios/");

String path = getServletContext().getRealPath("/");

Map parametros = new HashMap();

parametros.put(PathDataInicio, DtInicio);

parametros.put(PathDataFinal, DtFinal);
try {
        //Caminho do Arquivo Jasper
        String fileName="D:/SAF 1.0/web/WEB-INF/classes/relatorios/RelatorioHistorico.jasper";
        //Caminho do Arquivo pdf de destino
        String destFileNamePdf="D:/SAF 1.0/web/WEB-INF/classes/relatorios/RelatorioHistorico.pdf";
        //Caminho do Arquivo HTML de destino
        String destFileNameHtml="D:/SAF 1.0/web/WEB-INF/classes/relatorios/RelatorioHistorico.html";
        //Caminho do Arquivo xls de destino
        String destFileNameXls="D:/SAF 1.0/web/WEB-INF/classes/relatorios/RelatorioHistorico.xls";
        //Preparação do relatório
        //JasperReport jasperReport = JasperCompileManager.compileReport(fileName);
        JasperPrint impressao = JasperFillManager.fillReport("D:/SAF 1.0/web/WEB-INF/classes/relatorios/RelatorioHistorico.jasper",parametros,con);
        
        //Visualização do relatório
        //JasperViewer.viewReport(impressao); // ou JasperViewer.viewReport("/tmp/relatorio1.pdf",false,false );
        //Exportação para PDF
        JasperExportManager.exportReportToPdfFile(impressao, destFileNamePdf);
        
        //Criação de XLS - Planilha Excel
        JRXlsExporter exporter = new JRXlsExporter();
        File nomeArq= new File("RelatorioHistorico.xls");
        response.setHeader("Content-Disposition",  "attachment; filename=\"" + nomeArq + "\""); 
        response.setContentType("application/xls");  
        exporter.setParameter(JRExporterParameter.JASPER_PRINT, impressao);
        exporter.setParameter(JRExporterParameter.OUTPUT_FILE_NAME, destFileNameXls);
        exporter.setParameter(JRXlsExporterParameter.IS_ONE_PAGE_PER_SHEET, Boolean.TRUE);
        
        //exporter.setParameter(JRXlsExporterParameter.OUTPUT_STREAM,arrayOutputStream);
        exporter.exportReport();

2 Respostas

B

Tente trocar response.setContentType("application/xls"); por response.setContentType("application/vnd.ms-excel");

J

Obrigado colega, já fiz esta tentativa, o que acontece é que ele abre o excell porem gera dentro dele a pagina do jsp atual e não omeu arquivo.xls gerado que se encontra no diretorio D:/SAF 1.0/web/WEB-INF/classes/relatorios/RelatorioHistorico.xls
preciso de um comando , uma linha de codigo que eu possa apontar o diretorio onde se encontra o arquivo do excell gerado e ele abra uma janela perguntando se desejo abrir o arquivo do diretorio tal no excell , se possivel na servlet este comando porem
se você tiver outra sugestão será muito bem vinda e com certeza irei testar pois estou precisando muito.

Criado 27 de agosto de 2009
Ultima resposta 27 de ago. de 2009
Respostas 2
Participantes 2