Opa!
Senhores, fiz uma aplicação que gera relatórios com o IReport e Jasper Reports. Com HTML e PDF ele gera tudo certinho, mas quando vou gerar com XLS (excel) ele gera o arquivo, mas não consigo abrir :evil:
Esse é o código que exporta pra pdf:
String fileName = new SimpleDateFormat("ddMMyyyy-HHmmss").format(new Date()) + ".pdf";
exporter = new JRPdfExporter();
response.setHeader("Content-Disposition","attachment;filename=\"" + fileName + "\"");
response.setContentType("application/octet-stream");
exporter.setParameter(JRPdfExporterParameter.JASPER_PRINT, print);
exporter.setParameter(JRPdfExporterParameter.OUTPUT_STREAM, new BufferedOutputStream(response.getOutputStream()));
Apenas modifiquei ele para gerar xls:
String fileName = new SimpleDateFormat("ddMMyyyy-HHmmss").format(new Date()) + ".xls";
exporter = new JRXlsExporter();
response.setHeader("Content-Disposition","attachment;filename=\"" + fileName + "\"");
response.setContentType("application/vnd.ms-excel");
exporter.setParameter(JRXlsExporterParameter.JASPER_PRINT, print);
exporter.setParameter(JRXlsExporterParameter.OUTPUT_STREAM, new BufferedOutputStream(response.getOutputStream()));
exporter.setParameter(JRXlsExporterParameter.IS_ONE_PAGE_PER_SHEET, Boolean.TRUE);
O browser perguntra se quero salvar ou abrir o arquivo, independente de qual eu fizer, ao abrir o arquivo o excel manda a seguinte mensagem: “O aqruivo não pode ser acessado. O arquivo pode ser para somente leitura ou você está tentando acessar um local somente para leitura. Ou, o servidor no qual o documento está armazenado pode não estar respondendo.”
Alguem sabe oq pode ser?
Se eu mando exportar direto para o disco(“c:\reports\relatorio.xls”) ele funciona. Só não funciona quando eu tento gerar ele direto pro cara salvar do browser :x
*Juro, depois de apanhar tanto vou fazer um tutorial ninja de exportações em Jasper Reports!!! :mrgreen: