从JasperViewer保存到Excel

我正在使用JasperViewer向用户显示报告,并能够导出为pdfwordExcel 。 问题是保存到Excel ,错误提示说:

 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) 

这里是我用来显示我的报告的代码:

  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(); } } 

我很绝望:(为什么不运行?我应该做什么修改?或者我应该导入到项目中运行哪些库?

目前我有: poi-3.6.jar (与JR发行版一起),我也尝试过以前的版本,3.5和3.2,并且所有的一切工作正常,但只为html,pdf和word,不适用于Excel。

任何有关这方面的见解将是有益的。

如果你可以把它变成一个CSV文件,并用记事本++或类似的东西打开它,找一个replace为(连续两个逗号)的文件,并用一个短划线代替它作为占位符。 这使我感到困惑。 之后,你可以用你select的语言把它拉到一个数组中,并从那里操作它。

你需要在你的项目中添加“poi-3.10.1.jar”。

为Excel导出所需的jxl库。 JasperReports通常需要commons-collections,commons-beanutils和commons-digester

正如阿德尔所说,与特定的“poi-3.10.1.jar”版本相得益彰。

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