Excel gerado via jasper retorna erro

Olá,

Estou tendo problemas em gerar um relatório em excel pelo jasper;
acontece que ele gera o arquivo, porém quando abro o mesmo ele retorna o erro “Erro no arquivo: os dados podem ter sido perdidos” e abre em branco.

O código que testei peguei aqui no fórum, mas não encontrei a solução em nenhum lugar.

Quem tiver alguma idéia, agradeço mto.

O post que vi foi esse: http://www.guj.com.br/posts/list/37439.java

Meu código

 [code] OutputStream output = new FileOutputStream(new File("C:/relatorio.xls"));
    ByteArrayOutputStream xlsReport = new ByteArrayOutputStream();
    byte bytes[] = new byte[10];

    // exportação para excel
    JRXlsExporter exporterXLS = new JRXlsExporter();
    exporterXLS.setParameter(JRXlsExporterParameter.JASPER_PRINT, new JasperPrint());
    exporterXLS.setParameter(JRXlsExporterParameter.OUTPUT_STREAM, xlsReport);
    exporterXLS.setParameter(JRXlsExporterParameter.OUTPUT_FILE, "C:/");
    exporterXLS.setParameter(JRXlsExporterParameter.IS_ONE_PAGE_PER_SHEET, Boolean.FALSE);
    exporterXLS.setParameter(JRXlsExporterParameter.IS_WHITE_PAGE_BACKGROUND, Boolean.TRUE);
    exporterXLS.setParameter(JRXlsExporterParameter.IS_REMOVE_EMPTY_SPACE_BETWEEN_ROWS, Boolean.TRUE);

    try {
        exporterXLS.exportReport();
        // converte para bytes
        bytes = xlsReport.toByteArray();
        xlsReport.close();

        // grava os bytes na saída
        output.write(bytes, 0, bytes.length);
        output.flush();
        output.close();
    } catch (Exception e) {
        e.printStackTrace();
    }[/code]

abs

Ué, mas vc n está passando nenhum layout do Ireport ?

Voce esta chamando somente um :
exporterXLS.setParameter(JRXlsExporterParameter.JASPER_PRINT, new JasperPrint());

qualquer coisa tente fazer assim:

JExcelApiExporter exporter = new JExcelApiExporter();   
			ByteArrayOutputStream xlsReport = new ByteArrayOutputStream();   
			exporter.setParameter(JExcelApiExporterParameter.JASPER_PRINT, jasperPrint);   
			exporter.setParameter(JExcelApiExporterParameter.OUTPUT_STREAM, xlsReport);   
			exporter.setParameter(JRXlsExporterParameter.IS_ONE_PAGE_PER_SHEET, Boolean.FALSE);  
			exporter.setParameter(JRXlsExporterParameter.IS_WHITE_PAGE_BACKGROUND, Boolean.TRUE);  
			exporter.setParameter(JRXlsExporterParameter.IS_REMOVE_EMPTY_SPACE_BETWEEN_ROWS, Boolean.TRUE); 
			  
			exporter.exportReport();   
			bytes = xlsReport.toByteArray();   
			xlsReport.close();   

//Exporta para o disco
OutputStream out = new FileOutputStream("c://arquivo.xls");
		out.write(bytes);
		out.close();		

Veja se n tem nenhum campo saindo fora do layout do Ireport ou algo do tipo !!

Já fiz layouts com relatorios em pdf com o ireports…mas em excel, como seria? é a mesma coisa?

Depende !! Existe pequenas diferenças, alguns truques hehe !!
Mas se for so uma lista simples e td mais, n tem diferença.
Voce pega o JasperPrint e manda exportar para xls.

O JasperPrint é o objeto que pode ser convertido para todos os formatos de exportacao que o Ireport suporta, pdf, html, xls …

Hum legal, …vlw rdmardegam , vou ver e retorno…

abs