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);}
}
}
hola
no me funciono amigo
ay un erro desconocido
bueno es todo
nos vemos en el futuro…!
si, mandenme sugerencias
Buenas Julian.
Si puedes especificar un poco mas el error.Sera de gran ayuda
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
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…
Pingback: Integración de JasperReports en ADF. « Fetishcode…Thinking in objects
Hola, espero me puedan ayudar estoy utilizando el formato csv pero no me esta respetando acentos ni caracteres especiales como ñ, quiero ver si me pueden ayudar o decir que es lo que me esta haciendo falta.
Saludos
Saludo, espero puedan ayudarme. quisiera saber donde y que arvhicos debo coloar para poder hacer estas importaciones:
010 import net.sf.jasperreports.engine.JRExporterParameter;
011 import net.sf.jasperreports.engine.JasperCompileManager;
012 import net.sf.jasperreports.engine.JasperExportManager;
013 import net.sf.jasperreports.engine.JasperFillManager;
014 import net.sf.jasperreports.engine.JasperPrint;
015 import net.sf.jasperreports.engine.JasperReport;
016 import net.sf.jasperreports.engine.export.JRCsvExporter;
017 import net.sf.jasperreports.engine.export.JRRtfExporter;
018 import net.sf.jasperreports.engine.export.JRXlsExporter;
019 import net.sf.jasperreports.engine.export.JRXlsExporterParameter;
Yo lo utilice pero me dice proceso completed, pero al buscar el pdf creado no me lo genera
Juan Carlos los Archivos o librerías q ocupas están en el ZIP de JasperReports
Lo puedes descargar de:
http://sourceforge.net/projects/jasperreports/
Para usar el Jasper básicamente ocupas estas librerías
dist/jasperreports-X.jar
lib/commons-*.jar (todos los que empiezan con “commons” – excepto tal vez commons-logging)
Para exportar se usan el resto, dependiendo de lo que desees exportar deberes elegir uno u otro .jar
por ejemplo:
lib/itext-X.jar (para exportar a PDF)
lib/poi-X.jar (para exportar a XLS)
lib/jxl-X.jar (para exportar a XLS)
Para compilar desde tu aplicación los *.jxml a *.jasper requieres de:
lib/jdt-compiler-X.jar (para compilar los .jrxml a .jasper)
etc.
Para importarlos al proyecto dependerá del IDE q utilices
hola nesesito ayuda tengo este codigo
package reporte1;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import net.sf.jasperreports.engine.JRExporter;
import net.sf.jasperreports.engine.JRExporterParameter;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.engine.JasperReport;
import net.sf.jasperreports.engine.export.JRPdfExporter;
import net.sf.jasperreports.engine.util.JRLoader;
public class Main {
public Main(){
}
public static void main(String[] args) throws Exception
{
String Driver = “org.postgresql.Driver”;
String connectString = “jdbc:postgresql://localhost:5432/Farmacia”;
String user = “postgres”;
String password = “julio”;
// try{
Class.forName(Driver);
Connection conexion = DriverManager.getConnection(connectString, user, password);
JasperReport reporte = (JasperReport) JRLoader.loadObject(“report2.jasper”);
//
//JRExporter exporter = new JRPdfExporter();
//exporter.setParameter(JRExporterParameter.JASPER_PRINT,jasperPrint);
//exporter.setParameter(JRExporterParameter.OUTPUT_FILE,new java.io.File(“reportePDF.pdf”));
//exporter.exportReport();
conexion.close();
//}
la conexxion si la realisa pero al momento de colocar esta sintaxis
JRExporter exporter = new JRPdfExporter(); me marca error??? porke
Que error te marca? Sin mas pistas poco podemos hacer.
Juliodeathcore
antes agregaste el jar Itext en el classpath del proyecto
y ya hiciste el import
import net.sf.jasperreports.engine.export.JRPdfExporter;
???
Algunos formatos que olvidaste mencionar son los de OpenOffice (o LibreOffice) y MS Office 2007/2010
// formatos nuevos (openOffice, libreOffice, MS Office 2007)
import net.sf.jasperreports.engine.export.oasis.JROdsExporter;
import net.sf.jasperreports.engine.export.oasis.JROdtExporter;
import net.sf.jasperreports.engine.export.ooxml.JRDocxExporter;
import net.sf.jasperreports.engine.export.ooxml.JRPptxExporter;
import net.sf.jasperreports.engine.export.ooxml.JRXlsxExporter;
por cierto, el de excel 2007 (XLSX) tiene sus ventajas y desventajas contra su predecesor (XLS)
Si el reporte contiene imágenes, con XLS hace algo como un resize (muy malo) y se degrada la imagen, al contrario al exportar a XLSX la imagen se ve muy bien
si exportas en XLS se puede usar JRXlsExporterParameter.SHEET_NAMES para indicar el nombre de las hojas, pero en XLSX esta opción no viene y pone en su lugar hoja1, hoja2, hojaN
por lo menos esto es lo que he visto
Alguien se ha preguntado porque cuando usas el jchoosefile y obtienes la url del archivo te salen con el slash inverso y no te lo acepta , cuando le pasas el parametro, al report = JasperCompileManager.compileReport(aqui”);…. no he encontrado alguna solucion si alguien tiene alguna sugerencia. gracias
Pingback: Los números de 2010 « Fetishcode
necesito estas librerias por fa ayuda con un link pa descargarlas porque en otros pos me han dado links rotos y las necesito de urgent
import net.sf.jasperreports.engine.JRExporter;
import net.sf.jasperreports.engine.JRExporterParameter;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.engine.JasperReport;
import net.sf.jasperreports.engine.export.JRPdfExporter;
Esas librerias son de jasper debes ir a la web del producto y descargarlas.
Tambien estan dentro de Ireport
me da el siguiente error
Exception in thread “main” java.lang.NoClassDefFoundError: net/sf/jasperreports/
engine/JRExporter
Caused by: java.lang.ClassNotFoundException: net.sf.jasperreports.engine.JRExpor
ter
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
Eso es cuendo ejecuto el .jar
Tengo incluida la libreria jasperreport.jar 4.0
Que me puede estar faltando.
Gracias.
Saludos.
te falta agregar a tu jre en lib / extlas librerias
Hola alguien sabe como exportar a TXT texto plano????