javax.el.ELException:java.lang.NoClassDefFoundError:jxl/read/biff/BiffException
在JSF2.x应用程序中,我使用的是PrimeFaces V-3.5和JasperReports V-5.2。我正在尝试导出一些带有JasperReports的报告。我能够导出PDF和RTF格式的报告;但是,Excel格式不起作用,我遇到以下错误:javax.el.ELException:java.lang.NoClassDefFoundError:jxl/read/biff/BiffException,java,jasper-reports,jsf-2.2,jexcelapi,Java,Jasper Reports,Jsf 2.2,Jexcelapi,在JSF2.x应用程序中,我使用的是PrimeFaces V-3.5和JasperReports V-5.2。我正在尝试导出一些带有JasperReports的报告。我能够导出PDF和RTF格式的报告;但是,Excel格式不起作用,我遇到以下错误: javax.el.ELException: java.lang.NoClassDefFoundError: jxl/read/biff/BiffException 以下是我的报告生成器方法: private void prepareReport(S
javax.el.ELException: java.lang.NoClassDefFoundError: jxl/read/biff/BiffException
以下是我的报告生成器方法:
private void prepareReport(String reportPath, @SuppressWarnings("rawtypes") List beanList, String outputFormat, String reportName) {
JasperReport jReport = null;
JasperPrint jPrint = null;
try {
jReport = JasperCompileManager.compileReport(reportPath);
jPrint = JasperFillManager.fillReport(jReport, jasperParameter, new JRBeanCollectionDataSource(beanList));
} catch (JRException e) {
e.printStackTrace();
}
FacesContext ctx = FacesContext.getCurrentInstance();
HttpServletResponse response = (HttpServletResponse) ctx.getExternalContext().getResponse();
OutputStream outputStream = null;
try {
outputStream = response.getOutputStream();
} catch (IOException e) {
e.printStackTrace();
}
try {
if (outputFormat.equals(OUTPUT_FORMAT_PDF)) {
response.setContentType("application/pdf");
response.setHeader("Content-disposition", "attachment; filename=" + reportName + ".pdf");
JasperExportManager.exportReportToPdfStream(jPrint, outputStream);
} else if (outputFormat.equals(OUTPUT_FORMAT_EXCEL)) {
response.setContentType("application/xls");
response.setHeader("Content-disposition", "attachment; filename=" + reportName + ".xls");
JExcelApiExporter exporter = new JExcelApiExporter();
exporter.setParameter(JRExporterParameter.JASPER_PRINT, jPrint);
exporter.setParameter(JRExporterParameter.OUTPUT_STREAM, outputStream);
exporter.exportReport();
} else if (outputFormat.equals(OUTPUT_FORMAT_RTF)) {
response.setContentType("application/rtf");
response.setHeader("Content-disposition", "attachment; filename=" + reportName + ".rtf");
JRRtfExporter exporter = new JRRtfExporter();
exporter.setParameter(JRExporterParameter.JASPER_PRINT, jPrint);
exporter.setParameter(JRExporterParameter.OUTPUT_STREAM, outputStream);
exporter.exportReport();
}
} catch (JRException e) {
e.printStackTrace();
}
try {
outputStream.flush();
outputStream.close();
FacesContext.getCurrentInstance().responseComplete();
} catch (IOException e) {
e.printStackTrace();
}
}
如何以Excel格式导出报告?您正在使用。它正在使用图书馆
您可以在JasperReports的pom.xml文件中检查依赖关系。JasperReports 5.2正在使用此工件:
net.sourceforge.jexcelapi
jxl
2.6.10
这意味着您应该将jxl-2.6.10.jar添加到您的应用程序类路径中(如果使用JasperReports 5.2)。您应该发布完整的堆栈跟踪,如果您将jxl-2.6.10.jar添加到类路径中?您需要这个工件:net.sourceforge.jexcelapi.jxl:2.6.10 for JasperReports 5.2I刚刚添加了jxl-2.6.10.jar文件,它正在工作。先谢谢你。把它作为一个答案,这样我就可以投你的票。