2

在 excel 中生成报告时,会显示以下错误消息。请帮忙!!!

代码:-

public String mainReportXLS(){

    Map<String, Object> jrxmlParams = null;

    try{

        String jrxmlFileName = "C:/Jasper/Dashboard2.jrxml";

        JasperReport objJReport = JasperCompileManager.compileReport(jrxmlFileName);
        connection = getConnection();

        JasperPrint print = JasperFillManager.fillReport(objJReport, jrxmlParams, connection);
        ByteArrayOutputStream outputByteArray = new ByteArrayOutputStream();
        //OutputStream outputfile= new FileOutputStream(new File("c:/output/JasperReport.xls"));

         JRXlsExporter exporterXLS = new JRXlsExporter();
         exporterXLS.setParameter(JRXlsExporterParameter.JASPER_PRINT, print);
         exporterXLS.setParameter(JRExporterParameter.OUTPUT_FILE_NAME, "C:/Jasper/Dashboard2.xls" );
         exporterXLS.setParameter(JRXlsExporterParameter.OUTPUT_STREAM, outputByteArray);
         exporterXLS.setParameter(JRXlsExporterParameter.IS_ONE_PAGE_PER_SHEET, Boolean.FALSE);
         exporterXLS.setParameter(JRXlsExporterParameter.IS_DETECT_CELL_TYPE, Boolean.TRUE);
         exporterXLS.setParameter(JRXlsExporterParameter.IS_WHITE_PAGE_BACKGROUND, Boolean.FALSE);
         exporterXLS.setParameter(JRXlsExporterParameter.IS_REMOVE_EMPTY_SPACE_BETWEEN_ROWS, Boolean.TRUE);
         exporterXLS.exportReport();

         //outputfile.write(outputByteArray.toByteArray()); 


    }catch (Exception e) {
           System.out.print("Exceptiion" + e);
      }

    return null;
}

查看的错误消息:--

]] Root cause of ServletException.
javax.faces.FacesException: Error calling action method of component with id headerForm:Report123456
    at org.apache.myfaces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:72)
    at javax.faces.component.UICommand.broadcast(UICommand.java:109)
    at javax.faces.component.UIViewRoot._broadcastForPhase(UIViewRoot.java:97)
    at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:171)
    at org.apache.myfaces.lifecycle.InvokeApplicationExecutor.execute(InvokeApplicationExecutor.java:32)
    Truncated. see log file for complete stacktrace
Caused By: javax.faces.el.EvaluationException: Exception while invoking expression #{ReportsBB.extractJasper}
    at org.apache.myfaces.el.MethodBindingImpl.invoke(MethodBindingImpl.java:156)
    at org.apache.myfaces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:61)
    at javax.faces.component.UICommand.broadcast(UICommand.java:109)
    at javax.faces.component.UIViewRoot._broadcastForPhase(UIViewRoot.java:97)
    at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:171)
    Truncated. see log file for complete stacktrace
Caused By: java.lang.NoSuchMethodError: org.apache.poi.hssf.usermodel.HSSFWorkbook.getCreationHelper()Lorg/apache/poi/ss/usermodel/CreationHelper;
    at net.sf.jasperreports.engine.export.JRXlsExporter.openWorkbook(JRXlsExporter.java:282)
    at net.sf.jasperreports.engine.export.JRXlsAbstractExporter.exportReportToStream(JRXlsAbstractExporter.java:879)
    at net.sf.jasperreports.engine.export.JRXlsAbstractExporter.exportReport(JRXlsAbstractExporter.java:629)
    at com.ultimatix.dealpricing.dao.ReportsDAO.mainReportXLS(ReportsDAO.java:137)
    at com.ultimatix.dealpricing.backingbeans.ReportsBackingBean.extractJasper(ReportsBackingBean.java:293)
    Truncated. see log file for complete stacktrace
> 

任何人都可以帮忙..!!!

4

1 回答 1

5

请尝试以下代码,它对我有用

   File xlsx = new File("C:/Users/Sadagopan/Documents/sample.xlsX");
   JRXlsxExporter Xlsxexporter = new JRXlsxExporter();
   Xlsxexporter.setParameter(JRExporterParameter.JASPER_PRINT,
                             jasperPrint);
   Xlsxexporter.setParameter(JRExporterParameter.OUTPUT_FILE,
                             xlsx);
   Xlsxexporter.exportReport();

也检查一下..“工具”>“选项”>“导出选项”选项卡>“PDF”各种安全选项

于 2013-03-04T10:57:12.513 回答