Я использую 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.
Любое понимание этого вопроса будет полезно.