我们正在对我们的应用程序进行更改,以将文件扩展名从 xls 转换为 xlsx 格式(2007 及更高版本),同时从应用程序导出文件。
我通过升级到 POI 3.9 jar 来添加 XSSF 而不是 HSSF,从而进行了必要的代码更改。我们使用的Jar文件之前的版本是POI 3.0。
我在 Library 文件夹中添加了以下 jar:
poi-3.9-20121203
poi-examples-3.9-20121203
poi-excelant-3.9-20121203
poi-ooxml-3.9-20121203
poi-ooxml-schemas-3.9-20121203
poi-scratchpad-3.9-20121203
commons-codec-1.5
commons-logging-1.1
junit-3.8.1
dom4j-1.6.1
stax-api-1.0.1
xmlbeans-2.3.0
升级 Jar 文件后,当我尝试在应用程序中导出文件时出现页面无法显示错误。以下是我单击 Excel 图标时控制台中的异常:
com.sun.faces.lifecycle.InvokeApplicationPhase execute #{customerFinancialReportAction.createReport}: javax.faces.el.EvaluationException: java.lang.NoClassDefFoundError: org.apache.poi.ss.usermodel.Font
javax.faces.FacesException: #{customerFinancialReportAction.createReport}: javax.faces.el.EvaluationException: java.lang.NoClassDefFoundError: org.apache.poi.ss.usermodel.Font
at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:79)
at javax.faces.component.UICommand.broadcast(UICommand.java:312)
at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:298)
at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:412)
at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:77)
at com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:220)
at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:91)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:197)
at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:966)
我们不确定是什么导致了这里的问题。请帮我解决这个问题。