当前位置: 首页 > news >正文

easyExcel和poi的版本对应

easypoi3.0.5对应的poi版本_easypoi和poi版本对应-CSDN博客

https://github.com/alibaba/easyexcel/blob/v3.2.0/pom.xml

解决 java.lang.NoClassDefFoundError: org/apache/poi/POIXMLTypeLoader 报错-CSDN博客

参考这个文档解决的- 引入最佳版本是3.15版本

java.lang.NoClassDefFoundError: org.apache.poi.POIXMLDocument问题排查解决_java.lang.classnotfoundexception: org.apache.poi.p-CSDN博客

设备维保用这个版本的

<dependency><groupId>org.apache.poi</groupId><artifactId>poi</artifactId><version>3.15</version></dependency><dependency><groupId>org.apache.poi</groupId><artifactId>poi-ooxml</artifactId><version>3.15</version></dependency><dependency><groupId>org.apache.poi</groupId><artifactId>poi-ooxml-schemas</artifactId><version>3.15</version></dependency>

java.lang.NoClassDefFoundError: org.apache.poi.POIXMLDocument问题排查解决_java.lang.classnotfoundexception: org.apache.poi.p-CSDN博客

java.lang.NoClassDefFoundError: org.apache.poi.POIXMLDocument问题排查解决

查理斯·耀猿

于 2023-02-07 14:57:15 发布

阅读量1.4w
 收藏 6

点赞数 1
分类专栏: 项目开发问题收录 文章标签: java 开发语言
版权

项目开发问题收录
专栏收录该内容
2 篇文章0 订阅
订阅专栏
项目打包部署完成,用jar包在部署环境运行,在使用到poi相关的服务时报错
java.lang.NoClassDefFoundError: org.apache.poi.POIXMLDocument

然后我查找了些解决办法,对处理方法做了梳理:

使用XSSWorkbook,使用时出错
pom文件少引入依赖
包依赖冲突
使用模块没有声明所需依赖(这是我遇到的问题)
自己修改POIXMLDocumentPart文件中的代码
第一种情况解决办法:
最大的可能是引入的jar包过高或者过低
poi相关的poi有三个:poi、poi-ooxml、poi-ooxml-schemas

引入最佳版本是3.15版本

过低,找不到方法导致报错
过高,由于poi包系列更新较快,维护更新的版本不够稳定,导致很多问题
当然如果你使用的一直是高版本,就不需要强行下降版本,可能问题不是第一种,因为3.15版本也是隐藏些问题的。

第二种情况解决办法
在java操作word或excel抛出这样的异常时,一般情况下是pom文件少引入依赖

加上对应的pom里面的maven依赖

  <dependency>
      <groupId>org.apache.poi</groupId>
      <artifactId>poi-ooxml</artifactId>
      <version>4.1.0</version>
  </dependency>
  <dependency>
      <groupId>org.apache.poi</groupId>
      <artifactId>poi</artifactId>
      <version>4.1.0</version>
  </dependency>
1
2
3
4
5
6
7
8
9
10
一般这种情况较少,都会添加,但是也不除外是种被忽略的问题。

第三种情况解决办法
在pom文件引入依赖里面,引入了其它版本的jar包,导致运行时找不到对应的类

全局查询相关pom依赖,将多余的依赖文件移除

第四种情况解决办法
当前A模块没有引入所需依赖,引入依赖为主模块和公共B模块,导致运行时A模块中无法确定使用哪个类,类似于重复依赖

找到出现错误的类文件,我出错的类文件是FileStencilHandleUtils

然后找到这个类模块里面的pom,添加上依赖,然后往上找pom,找到公共pom和主pom文件,将里面的依赖去除。

这样就可以解决掉问题。当然如果还有其它模块需要用,可保留主pom,需要的模块声明所需依赖。

第五种情况解决办法
上述中已经表明poi系列有很多bug,可以通过自己对具体的方法修改,修补bug,但这个方法不适合所有人,谨慎使用

下载或者找到对应的jar包

将jar包解压,找到里面的文件XWPFStylesDocument.java文件
位置是在\org.apache.poi.xwpf.converter.core-1.0.6-sources\org\apache\poi\xwpf\converter\core\styles

打开文件,将文件中里面的方法进行修改

修改完成后,将整个模块放入代码中,或者重新打成jar包,依赖引入。

第五种解决方法来自于博主:「大魔王的日常Log」的原创文章
原文链接:https://blog.csdn.net/TaoShao521/article/details/126170434

————————————————

补充知识点:
NoClassDefFoundError问题 和 ClassNotFoundException问题不一样,前者一般发生在编译时能找到对应的类,但运行时找不到,后者发生在编译时就找不到对应的类。

文章知识点与官方知识档案匹配,可进一步学习相关知识
Java技能树首页概览148851 人正在系统学习中
————————————————

                            版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
                        
原文链接:https://blog.csdn.net/weixin_45937536/article/details/128904930

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • ASP.NET Core在启动过程中使用数据库实例的几种方式
  • 原生PHP/JS自主开发的交友内核框架婚恋交友系统V10
  • 【嵌入式硬件】快衰减和慢衰减
  • SqlSugar删除没有定义主键的实体类对应的数据库表数据
  • 学习SQL如何使用CASE语句查询分析设备状态
  • antdesgin table 组件下载成excel
  • leetcode日记(47)螺旋矩阵Ⅱ
  • 谷粒商城实战笔记-44-前端基础-Vue-整合ElementUI快速开发/设置模板代码
  • html+css 动态效果
  • pdf自动生成书签
  • 单元测试的最佳实践
  • UDP/TCP协议解析
  • Windows 下的sqlserver数据拷贝到linux
  • Cadence23学习笔记(十四)
  • 深入浅出C语言指针(进阶篇)
  • 【刷算法】求1+2+3+...+n
  • CentOS7简单部署NFS
  • Cumulo 的 ClojureScript 模块已经成型
  • es6要点
  • Java知识点总结(JDBC-连接步骤及CRUD)
  • Leetcode 27 Remove Element
  • Mac转Windows的拯救指南
  • PHP 程序员也能做的 Java 开发 30分钟使用 netty 轻松打造一个高性能 websocket 服务...
  • PHP的类修饰符与访问修饰符
  • Python学习笔记 字符串拼接
  • Quartz实现数据同步 | 从0开始构建SpringCloud微服务(3)
  • 笨办法学C 练习34:动态数组
  • 你不可错过的前端面试题(一)
  • 使用 @font-face
  • 我从编程教室毕业
  • Mac 上flink的安装与启动
  • 关于Kubernetes Dashboard漏洞CVE-2018-18264的修复公告
  • 基于django的视频点播网站开发-step3-注册登录功能 ...
  • ​Spring Boot 分片上传文件
  • #前后端分离# 头条发布系统
  • (0)Nginx 功能特性
  • (C语言)strcpy与strcpy详解,与模拟实现
  • (zt)最盛行的警世狂言(爆笑)
  • (读书笔记)Javascript高级程序设计---ECMAScript基础
  • (附源码)springboot人体健康检测微信小程序 毕业设计 012142
  • (接口封装)
  • (力扣记录)1448. 统计二叉树中好节点的数目
  • (强烈推荐)移动端音视频从零到上手(上)
  • (详细文档!)javaswing图书管理系统+mysql数据库
  • (一)Java算法:二分查找
  • (转) ns2/nam与nam实现相关的文件
  • (转)C#开发微信门户及应用(1)--开始使用微信接口
  • .NET Conf 2023 回顾 – 庆祝社区、创新和 .NET 8 的发布
  • .net core使用RPC方式进行高效的HTTP服务访问
  • .NET Reactor简单使用教程
  • .NET 使用 ILMerge 合并多个程序集,避免引入额外的依赖
  • .net中应用SQL缓存(实例使用)
  • /3GB和/USERVA开关
  • /etc/shadow字段详解
  • @cacheable 是否缓存成功_Spring Cache缓存注解