JasperReport: gerando relatório Excel em branco

3 respostas
ze_kiefa

Ao gerar um relatório em Excel, a planilha sai em branco.
Gerei o relatório em PDF para verificar se não era erro de banco, mas o relatório sai perfeitamente.
Segue o trecho do código que gera o relatório, tanto em Excel quanto em PDF.

public class Relatorio
{
  private static Logger logger = Logger.getLogger( Relatorio.class );
  public static int REPORT_PDF    = 1;
  public static int REPORT_EXCEL  = 2;
  
  public Relatorio()
  {
  }

  private Connection getConnection() throws ClassNotFoundException, SQLException
  {
    String driver = "aaaaaaaaaaaa";
    String url = "yyyyyyyyyyyyyyyyyyyyy";
    String user = "user";
    String pwd = "password";
    
    Class.forName(driver);
    Connection conn = DriverManager.getConnection( url, user, pwd );
    
    return conn;
  }

  private void geraRelatorioPDF( JasperPrint filled, String caminho )  throws Exception
  {
    JasperExportManager.exportReportToPdfFile( filled, caminho );
  }
  
  private void geraRelatorioExcel( JasperPrint filled, String caminho ) throws FileNotFoundException, JRException, IOException
  {
    OutputStream output = new FileOutputStream(new File(caminho)); 
    ByteArrayOutputStream xlsReport = new ByteArrayOutputStream();
    byte bytes[] = new byte[10];
    
    // exportação para excel
    JRXlsExporter exporterXLS = new JRXlsExporter();
    exporterXLS.setParameter(JRXlsExporterParameter.JASPER_PRINT, filled);
    exporterXLS.setParameter(JRXlsExporterParameter.OUTPUT_STREAM, xlsReport);
    exporterXLS.setParameter(JRXlsExporterParameter.OUTPUT_FILE, caminho);
    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);
    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();
  }
}

3 Respostas

G

com essa mesma classe o meu ainda tah saindo em branco… qdo vou ver o arquivo gerado no diretorio q exportei… ele esta lah mas tah em branco…e ainda da um problema nessa linha JRXlsExporter exporterXLS = new JRXlsExporter(); alguem sabe o q eh?

G

tudo certo, o detalhe é que ainda se tem que adicionar o poi-contrib-3.0-rc4-20070503.jar ao classpath… só que o relatorio tah saindo todo mal formatdo, tipo: o tamanho da celula pela metade, a grade das celulas ocultas…

alguem sabe ai como faço para formatar o documento antes de cria-lo??

B

Acho estranho isso tbm,toda vez que exporto relátorios para o excel ele fica todo fora de formato,mas todas as outras extensões fica perfeito…so no excel que não…acho que isso não tem como,tentei na versão 2003 e 2007 do excel e nada…mas se alguem souber como gerar esse relatório já formatado sem precisar de formatar na mão tbm gostaria de saber…

Criado 20 de julho de 2006
Ultima resposta 17 de dez. de 2007
Respostas 3
Participantes 3