poi5.2.2+ 与easyexcel3.1.3jar包冲突

全栈程序员
后端领域优质创作者
2024-05-27 09:11:33

触发场景描述

  • 当使用poi读取有数据及样式的excel时,就会报错
    触发Bug的代码
    try (InputStream inputStream = classPathResource.getInputStream()){
    Workbook wb = WorkbookFactory.create(inputStream);
    java.lang.NoSuchFieldError: Factory
      at org.apache.poi.xssf.model.ThemesTable.readFrom(ThemesTable.java:119)
      at org.apache.poi.xssf.model.ThemesTable.<init>(ThemesTable.java:87)
      at org.apache.poi.ooxml.POIXMLFactory.createDocumentPart(POIXMLFactory.java:61)
      at org.apache.poi.ooxml.POIXMLDocumentPart.read(POIXMLDocumentPart.java:661)
      at org.apache.poi.ooxml.POIXMLDocument.load(POIXMLDocument.java:165)
      at org.apache.poi.xssf.usermodel.XSSFWorkbook.<init>(XSSFWorkbook.java:260)
      at org.apache.poi.xssf.usermodel.XSSFWorkbookFactory.createWorkbook(XSSFWorkbookFactory.java:118)
      at org.apache.poi.xssf.usermodel.XSSFWorkbookFactory.create(XSSFWorkbookFactory.java:98)
      at org.apache.poi.xssf.usermodel.XSSFWorkbookFactory.create(XSSFWorkbookFactory.java:36)
      at org.apache.poi.ss.usermodel.WorkbookFactory.lambda$create$2(WorkbookFactory.java:224)
      at org.apache.poi.ss.usermodel.WorkbookFactory.wp(WorkbookFactory.java:329)
      at org.apache.poi.ss.usermodel.WorkbookFactory.create(WorkbookFactory.java:224)
      at org.apache.poi.ss.usermodel.WorkbookFactory.create(WorkbookFactory.java:185)
      at com.daysuns.dams.utils.easypoi.util.ResourceLoader.getWorkbook(ResourceLoader.java:23)
      at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:102)
      at com.daysuns.dams.sys.aspect.TimeLimitTaskExecutorAspect$TimeoutCallable.call(TimeLimitTaskExecutorAspect.java:53)
      at java.util.concurrent.FutureTask.run(FutureTask.java:266)
      at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
      at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
      at java.lang.Thread.run(Thread.java:748)
    

    解决办法

  • POI 5.0+版本冲突,需要排除easyexcel的poi依赖
    <dependency>
              <groupId>com.alibaba</groupId>
              <artifactId>easyexcel</artifactId>
              <version>${easyexcel.version}</version>
              <exclusions>
                  <exclusion>
                      <groupId>org.apache.poi</groupId>
                      <artifactId>poi-ooxml</artifactId>
                  </exclusion>
                  <exclusion>
                      <groupId>org.apache.poi</groupId>
                      <artifactId>poi-ooxml-schemas</artifactId>
                  </exclusion>
              </exclusions>
          </dependency>
    
...全文
595 回复 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

17

社区成员

发帖
与我相关
我的任务
社区描述
全栈工程师社区
前端后端java 技术论坛(原bbs) 北京·大兴区
社区管理员
  • 全栈程序员
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧