Generar informe Jasper Report con datos CSV desde Java

De ChuWiki


Podemos aimentar nuestro informe Jasper Report jrxml con datos CSV. Veamos el código Java para hacerlo

// Crear un objeto JRCsvDataSource para proporcionar los datos al informe
JRCsvDataSource dataSource = new JRCsvDataSource("src/main/files/DatosJasper.csv", "Windows-1252");

// Configurar el delimitador y si la primera fila del CSV es de encabezado
dataSource.setFieldDelimiter(';');
dataSource.setUseFirstRowAsHeader(true);

// Compilar el informe a partir del archivo .jasper
JasperReport report = JasperCompileManager.compileReport(
   "src/main/files/ReportExampleCSV.jrxml");

// Parámetros, si los tienes
HashMap<String, Object> params = new HashMap<>();

// Generar el informe
JasperPrint jasperPrint = JasperFillManager.fillReport(report, params, dataSource);

// Mostrar el informe en una ventana
JasperViewer.viewReport(jasperPrint);

El código necesita poca explicación:

  • Creamos un JRCsvDataSource con el fichero CSV e indicando el encoding de dicho fichero
  • Configuramos los parámetros necesarios del CSV, como cual es el separador de campos o si la primera fila contiene el nombre de las columnas
  • Compilamos la plantilla Jasper .jrxml
  • Creamos un Map con los parámetros a pasar al informe, que en este caso no hay.
  • Rellenamos la plantilla con los parámetros y el dataSource
  • Y sólo nos queda previsualizar el informe.