NoSuchMethodError:org.apache.poi.ss.usermodel.Font.getIndexAsInt()

时间:2018-12-10 12:33:51

标签: java excel apache-poi

调用org.apache.poi.ss.usermodel.Font.getIndexAsInt()时在setFont中发生了异常。

public static CellStyle getFontBoldedUnderlinedCell(SXSSFWorkbook workbook) {
    Font font = workbook.createFont();
    font.setBold(true);
    font.setUnderline(XSSFFont.U_SINGLE);
    CellStyle style = workbook.createCellStyle();
    style.setFont(font);
    return style;
}

我的项目包含以下库。

jar files

如何解决此问题?

StackTrace:

11:03:00,255 SEVERE com.epic.cmsreports.util.interceptor.AccessControlIntercepter] 
(default task-57) null: java.lang.reflect.InvocationTargetException at sun.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at com.opensymphony.xwork2.DefaultActionInvocation.invokeAction(DefaultActionInvocation.java:453)
at com.opensymphony.xwork2.DefaultActionInvocation.invokeActionOnly(DefaultActionInvocation.java:292)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:255)
at com.epic.cmsreports.util.interceptor.AccessControlIntercepter.intercept(AccessControlIntercepter.java:66)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
at com.opensymphony.xwork2.interceptor.ConversionErrorInterceptor.intercept(ConversionErrorInterceptor.java:138)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
at com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:211)
at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
at com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:211)
at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
at org.apache.struts2.interceptor.MultiselectInterceptor.intercept(MultiselectInterceptor.java:75)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)

1 个答案:

答案 0 :(得分:1)

根据JavaDoc getIndexAsInt已在4.0.0版本中添加。

看起来,实际上您使用poi-ooxml <4.0.0,应该检查是否只有一个jar依赖项。

如果使用Maven或类似工具,则需要查看依赖关系树。

如果您只是将jar文件添加到目录中,建议您在找到所有Font类后,在所有jar文件中搜索“ org.apache.poi.ss.usermodel”和“ org.apache.poi.xssf.streaming”(仅使用文件搜索),您需要检查版本(打开jar文件作为zip存档)。