从JasperViewer保存到Excel
我正在使用JasperViewer
向用户显示报告,并能够导出为pdf
, word
和Excel
。 问题是保存到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>