2011-01-18 31 views
5

Estoy usando JasperViewer para mostrar el informe al usuario y para poder exportar a pdf, word y Excel. El problema es que mientras que el ahorro Excel, y el error le pide diciendo:Guardar en Excel Desde JasperViewer

Exception in thread "AWT-EventQueue-0" java.lang.VerifyError: (class: net/sf/jasperreports/engine/export/JRXlsExporter, 
method: createMergeRegion signature: (Lnet/sf/jasperreports/engine/export/JRExporterGridCell;IILorg/apache/poi/hssf/usermodel/HSSFCellStyle;)V) Incompatible argument to function 
     at net.sf.jasperreports.view.save.JRSingleSheetXlsSaveContributor.save(JRSingleSheetXlsSaveContributor.java:104) 
     at net.sf.jasperreports.swing.JRViewerToolbar.btnSaveActionPerformed(JRViewerToolbar.java:407) 

Aquí está el código que estoy usando para mostrar mi informe:

public void showReport() throws SQLException { 


     RNVehicle rnVehicle = new RNVehicle(); 
     vehicles.clear(); 
     vehicles= rnVehicle.getVehiculos(); 

     //Path to your .jasper file in your package 
     String reportName = "reports/ReportVehicles.jasper"; 

     //Get a stream to read the file 
     InputStream is = this.getClass().getClassLoader().getResourceAsStream(reportName); 

     try { 

      JasperPrint jp = JasperFillManager.fillReport(is, null, new JRBeanCollectionDataSource(vehicles)); 

      //Viewer for JasperReport 
      JRViewer jv = new JRViewer(jp); 

      //Insert viewer to a JFrame to make it showable 
      JFrame jf = new JFrame(); 
      jf.getContentPane().add(jv); 
      jf.validate(); 
      jf.setVisible(true); 
      jf.setSize(new Dimension(1020, 755)); 
      jf.setLocation(0, 0); 
      jf.setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE); 
     } catch (JRException ex) { 
      ex.printStackTrace(); 
     } 
    } 

estoy desesperado :(, ¿por qué no es ¿Qué cambios debo hacer? ¿O qué bibliotecas debo importar al proyecto para que se ejecute?

Por el momento tengo: poi-3.6.jar (el que viene con la distribución JR), también probé con versiones anteriores , 3.5 y 3.2 a nd con todos ellos todo funciona bien, pero solo para html, pdf y word, no para Excel.

Cualquier información al respecto será útil.

+0

No creo que esto solucione su problema inmediato, pero según mi lectura de la documentación de JR, no hay necesidad de obtener una secuencia para leer el archivo .jasper. Puede pasar el archivo directamente como un parámetro siempre que la variable apunte directamente al archivo. Es decir. simplemente pase reportName al JasperFillManager.fillReport(). – Sean

+0

¿Podría publicar un enlace a JavaDoc para JRXlsExporter? –

+0

eso es lo que hice, pero todavía no tengo ninguna respuesta – eddy

Respuesta

0

para Excel exportar la biblioteca jxl necesaria. Comúnmente JasperReports quiere commons-collections, commons-beanutils y commons-digester

1

Si puede obtenerlo en un archivo CSV y abrirlo en el bloc de notas ++ o algo similar, busque y reemplace por ,, (dos comas en una fila) y reemplazarlo con algo así como un guión como un marcador de posición. Eso me desordenó antes. después de eso, puedes colocarlo en una matriz en el idioma que elijas y manipularlo desde allí.

1

Necesita agregar "poi-3.10.1.jar" en su proyecto.

0

Como dijo Adel, funciona bien con la versión específica "poi-3.10.1.jar".

<dependency> 
     <groupId>org.apache.poi</groupId> 
     <artifactId>poi</artifactId> 
     <version>3.10.1</version>       
    </dependency> 
Cuestiones relacionadas