0

我们正在对我们的应用程序进行更改,以将文件扩展名从 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)

我们不确定是什么导致了这里的问题。请帮我解决这个问题。

4

1 回答 1

0
    Font font = workBook.createFont();
    font.setFontName(XSSFFont.DEFAULT_FONT_NAME);//Is this way you are creating font
    font.setFontHeightInPoints((short)10);
    return font;
于 2013-05-28T05:17:43.627 回答