Ir al contenido principal

Reporte Excel con JasperReports

Pues no funcionó el reporte con Jasper, pude hacer que evitara paginar con estas opciones

ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
JRXlsExporter exporterXLS = new JRXlsExporter();
exporterXLS.setParameter(JRXlsExporterParameter.JASPER_PRINT, jasperPrint);
// exporterXLS.setParameter(JRXlsExporterParameter.IS_DETECT_CELL_TYPE, Boolean.TRUE);
exporterXLS.setParameter(JRXlsExporterParameter.IS_WHITE_PAGE_BACKGROUND, Boolean.FALSE);
exporterXLS.setParameter(JRXlsExporterParameter.IS_REMOVE_EMPTY_SPACE_BETWEEN_ROWS, Boolean.TRUE);
exporterXLS.setParameter(JRXlsExporterParameter.IS_REMOVE_EMPTY_SPACE_BETWEEN_COLUMNS, Boolean.TRUE);
exporterXLS.setParameter(JRXlsExporterParameter.IS_COLLAPSE_ROW_SPAN, Boolean.TRUE);
exporterXLS.setParameter(JRXlsExporterParameter.IGNORE_PAGE_MARGINS, Boolean.TRUE);
exporterXLS.setParameter(JRXlsExporterParameter.IS_ONE_PAGE_PER_SHEET, Boolean.FALSE);
exporterXLS.setParameter(JRXlsExporterParameter.OUTPUT_STREAM, byteArrayOutputStream);
try {
exporterXLS.exportReport();
} catch (JRException ex) {
Logger.getLogger(ReporteAction.class.getName()).log(Level.SEVERE, "No se pudo crear el excel", ex);
}
getResponse().setContentType("application/vnd.ms-excel");
getResponse().setContentLength(byteArrayOutputStream.toByteArray().length);
getResponse().setHeader("Content-disposition",
"attachment; filename=\"" + reportName + ".xls\"");
ServletOutputStream out;
try {
out = getResponse().getOutputStream();
out.write(byteArrayOutputStream.toByteArray());
} catch (IOException e) {
e.printStackTrace();
}

y con una archivo jasperreports.properties
#net.sf.jasperreports.query.executer.factory.sql=com.jaspersoft.jasperserver.api.engine.jasperreports.util.JRTimezoneJdbcQueryExecuterFactory

#limit the crosstab bucket/measure count to prevent out of memory errors
#net.sf.jasperreports.crosstab.bucket.measure.limit=100000

# suppress page headers and footers when exporting to XLS
net.sf.jasperreports.export.exclude.origin.band.1=pageHeader
net.sf.jasperreports.export.exclude.origin.band.2=pageFooter

# this gets rid of the repeating column headers and footers in excel exports
net.sf.jasperreports.export.xls.exclude.origin.band.1=columnHeader
net.sf.jasperreports.export.xls.exclude.origin.band.2=pageFooter

# keep the first column header on export
net.sf.jasperreports.export.xls.exclude.origin.keep.first.band.1=columnHeader

# report exporter hints override export parameters
net.sf.jasperreports.export.parameters.override.report.hints=false

# use the workaround for the Sun JDK Glyph synchronization bug
net.sf.jasperreports.text.measurer.factory=net.sf.jasperreports.engine.util.JdkGlyphFixTextMeasurerFactory

# the fast/single line text measurer factory
net.sf.jasperreports.text.measurer.factory.single.line=com.jaspersoft.jasperserver.api.engine.jasperreports.util.SingleLineTextMeasurerFactory

# other excel options
#net.sf.jasperreports.export.xls.remove.empty.space.between.rows=true
#net.sf.jasperreports.export.xls.remove.empty.space.between.columns=true
#net.sf.jasperreports.export.xls.detect.cell.type=true
#net.sf.jasperreports.export.xls.create.custom.palette=true

Pero no me sirve de nada porque tengo un listado de 1500 y a partir del 600 se hace bolas y empieza poner campos donde no van, y a omitir otros, ademas algunos objetos como que su descripción no cabe y lo pasa a otro renglón, se ve bien, pero los datos no los voy a poder actualizar nuevamente de ahí, porque voy a tener campos sin id, y datos incompletos en el renglón... de plano no sirve... Ya sabía eso antes de empezar, pero realmente pensé que después de unos años, ya lo hubieran arreglado... pero bueno, voy a hacerlo con POI... seguramente tendré un mejor final, y más vale que me apure, pues todavía no preparo la demo de mañana.

Comentarios

Entradas más populares de este blog

OpenSolaris, Clúster de Glassfish y Sun Java Web Server Loadbalancer

Pues estuve necesitando un clúster de Glassfish V2U2 para lo cual encontré rápidamente mucha información en Internet, el que más me gustó fue un blog de Ryan Wilson , pero también necesitaba poner el balanceador de cargas ( loadbalancer ) asi que para eso utilicé la documentación de Glassfish . Aquí el resúmen: Instalar OpenSolaris 200805 y despues realizar lo que les sugieren en los Release Notes , en donde te dicen que actualices su herramienta para instalar paquetes. NOTA: Antes de hacer esto, asegurarse de tener todas las máquinas que van a participar dentro del cluster mapeadas con un DNS, de no ser esto posible sus archivos de hosts deben de tener la información suya y de cada una de las máquinas que van a participar. (Gracias a equipo Telcel) Despues de esto seguir las instrucciones de Ryan . Con esto vas a tener el cluster de glassfish funcionando. Solo que en la configuración del segundo servidor puedes hacer lo siguiente para evitar los pasos 4 al 6 (lo siguiente todo en una...

JQuery Image Upload en Spring MVC

Utilizar el jQuery File Upload de blueimp  en Grails es una delicia. Pero necesito hacer una aplicación grande y no sé lo suficiente como para mantenerla óptima dentro de Grails, así que decidí portarla a Spring MVC, pero no encontré una implementación de esta herramienta en Java que hiciera lo que hace el plugin, que simplemente implementa lo que la herramienta ya hace en otras plataformas. Así que me puse a implementarla y ya quedó. La pueden encontrar en github ... Sólo necesitan clonarla, y ejecutarla con maven: mvn tomcat7:run