我们正在对我们的应用程序进行更改,以便将文件扩展名从xls转换为xlsx格式(2007及更高版本),同时从应用程序导出文件。
我已经通过升级到POI 3.9 jar添加了HSSF的XSSF intead来进行必要的代码更改。我们使用的以前版本的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)
我们不确定这里导致问题的原因。请帮我解决这个问题。
答案 0 :(得分:0)
Font font = workBook.createFont();
font.setFontName(XSSFFont.DEFAULT_FONT_NAME);//Is this way you are creating font
font.setFontHeightInPoints((short)10);
return font;