Fetishcode…Thinking in objects

Thinking in objects

JasperReports + Java: Convertir report a distintos formatos.

con 6 comentarios

Aquí les dejo una clase de ejemplo, para poder transformar un report, creado con JasperReports, en distintos formatos.(pdf, html, csv, xls,…)


import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.OutputStream;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

import net.sf.jasperreports.engine.JRExporterParameter;
import net.sf.jasperreports.engine.JasperCompileManager;
import net.sf.jasperreports.engine.JasperExportManager;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.engine.JasperReport;
import net.sf.jasperreports.engine.export.JRCsvExporter;
import net.sf.jasperreports.engine.export.JRRtfExporter;
import net.sf.jasperreports.engine.export.JRXlsExporter;
import net.sf.jasperreports.engine.export.JRXlsExporterParameter;

public class Jasper {
    public Jasper() {
    }

    public static void main(String[] args) {
        Jasper jasper = new Jasper();
        Connection conn = null;

        //Cargamos el driver JDBC
            try {
              Class.forName("oracle.jdbc.driver.OracleDriver");
            }catch (ClassNotFoundException e) {
              System.out.println("JDBC Driver not found.");}
            try {
                String dburl = "jdbc:oracle:thin:@localhost:1521:XE";
                conn = DriverManager.getConnection(dburl,"user","pass");

            }catch (SQLException e){
              System.out.println("Error de conexión: " + e.getMessage());}

        JasperReport report;

        try {

            report = JasperCompileManager.compileReport("C:\\report.jrxml");

            JasperPrint print = JasperFillManager.fillReport(report, null, conn);

            //Exporta el informe a PDF
            String destFileNamePdf="C:\\trabajo\\reporte1.pdf";
            //Creación del PDF
            JasperExportManager.exportReportToPdfFile(print, destFileNamePdf);

            /*Otras importaciones

            //Exporta el informe a HTML
             JasperExportManager.exportReportToHtmlFile(print, destFileNamePdf);

            //Exporta el informe a excel

            OutputStream ouputStream= new FileOutputStream(new File("C:/trabajo/catalog.xls"));
            ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();

            JRXlsExporter exporterXLS = new JRXlsExporter();
            exporterXLS.setParameter(JRXlsExporterParameter.JASPER_PRINT,print);
            exporterXLS.setParameter(JRXlsExporterParameter.OUTPUT_STREAM,byteArrayOutputStream);

            exporterXLS.exportReport();

            ouputStream.write(byteArrayOutputStream.toByteArray());
            ouputStream.flush();
            ouputStream.close();

            //Exporta el informe a csv

            String destFileNamePdf="C:\\trabajo\\reporte1.csv";
            JRCsvExporter exporter = new JRCsvExporter();
            File destFile = new File(destFileNamePdf);

            exporter.setParameter(JRExporterParameter.JASPER_PRINT, print);
            exporter.setParameter(JRExporterParameter.OUTPUT_FILE_NAME,
            destFile.toString());

            exporter.exportReport();

            //Exporta el informe a rtf

            OutputStream ouputStream= new FileOutputStream(new File("C:/trabajo/catalog.rtf"));
            ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();

            JRRtfExporter exporter = new JRRtfExporter();
            exporter.setParameter(JRExporterParameter.JASPER_PRINT, print);
            exporter.setParameter(JRExporterParameter.OUTPUT_STREAM, ouputStream);

            exporter.exportReport();

            ouputStream.write(byteArrayOutputStream.toByteArray());
            ouputStream.flush();
            ouputStream.close();

            */

        } catch (Exception e) {System.out.println("Error"+e);}

    }
}

Escrito por fetishcode

Enero 23, 2009 a 9:12 am

Escrito en Java

Etiquetado con

6 comentarios

Suscríbete a los comentarios mediante RSS.

  1. hola

    no me funciono amigo

    ay un erro desconocido

    bueno es todo

    nos vemos en el futuro…!

  2. si, mandenme sugerencias

  3. Buenas Julian.
    Si puedes especificar un poco mas el error.Sera de gran ayuda

    fetishcode

    Mayo 28, 2009 a 7:37 am

  4. Hola amigo. En realidad lo que has colocado esta muy interesante y la exportacion a todos los formatos que has colocado funcionan correctamente. Muchas gracias me has ayudado bastante en un proyecto que estoy culminando
    Saludos
    Fernando

    Fernando

    Julio 5, 2009 a 12:04 am

  5. Muy buenas, grande pa excelente aporte…
    Lastima que el exportar reportes a XLS no funcione bien.

    Todos los demás funcionan bien.

    En el caso del XLS el error que se da es este: Exception in thread “main” java.lang.NoSuchMethodError: HSSFSheet.addMergedRegion(Lorg/apache/poi/hssf/util/CellRangeAddress;)
    y sigue despues la traza del mismo.

    El problema es el Jar que contiene la clase HSSFSheet
    Yo logre encontrar este: poi-3.5-beta6-20090622.jar
    Navegando se encuentran muchas versiones de ese jar…
    Sinembargo ninguna tiene la actualizacion del metodo addMergerRegion en la clase HSSFSheet
    Tengo una version de junio del 2009.
    Si alguien tiene un jar mas nuevo, se les agradecería en demasía…

    Jorge

    Octubre 21, 2009 a 12:08 am

  6. [...] Nota: No hemos mostrado como obtener la conexión, para ello pueden mirar el siguiente post. [...]


Escribe un comentario