POI操作Excel报错java.lang.NoSuchMethodError

 时间:2026-02-14 01:36:54

1、检查报错日志如下

POI操作Excel报错java.lang.NoSuchMethodError

2、定位错误

1、可能是编码出问题,检查编码

3、生成EXCEL文件类是否有如下编码:

response.setContentType("application/x-msdownload");

response.setCharacterEncoding("utf-8"); 

response.setHeader("Content-Disposition", "attachment;filename=" + new String( fileName.getBytes("gb2312"), "ISO8859-1" ));

4、检查导入poi的包是否存在多个版本,删除多余版本。

5、<dependency>  

<groupId>org.apache.poi</groupId>  

<artifactId>poi-ooxml</artifactId>  

<version>3.17</version>  

</dependency>  

<dependency>  

<groupId>org.apache.poi</groupId>  

<artifactId>poi-ooxml-schemas</artifactId>  

<version>3.17</version>  

</dependency>  

<dependency>  

<groupId>org.apache.poi</groupId>  

<artifactId>poi</artifactId>  

<version>3.17</version>  

</dependency>

6、如果不确定自己引用的是哪个包,可以用一下代码检测class文件走哪个jar包

POI操作Excel报错java.lang.NoSuchMethodError

7、检测class文件代码:

ClassLoader classloader =

   org.apache.poi.poifs.filesystem.POIFSFileSystem.class.getClassLoader();

URL res = classloader.getResource(

             "org/apache/poi/poifs/filesystem/POIFSFileSystem.class");

String path = res.getPath();

System.out.println("POI Core came from " + path);

classloader = org.apache.poi.POIXMLDocument.class.getClassLoader();

res = classloader.getResource("org/apache/poi/POIXMLDocument.class");

path = res.getPath();

System.out.println("POI OOXML came from " + path);

classloader = org.apache.poi.hslf.HSLFSlideShow.class.getClassLoader();

res = classloader.getResource("org/apache/poi/hslf/HSLFSlideShow.class");

path = res.getPath();

System.out.println("POI Scratchpad came from " + path);

8、将旧的jar从Java build path中删除掉,把workspace里面的包删了再把project clean一下,然后重新部署。

  • “二零二零年开始啦”的繁体字怎么写
  • 如何修改12306积分消费密码 12306消费密码修改
  • 花季短视频如何开启悬浮窗权限
  • 封神榜怎么获得异文剑,怎么装备
  • 机油标号的含义是什么
  • 热门搜索
    出国旅游需要什么证件 景春旅游网 呼伦贝尔旅游景点 淮安旅游景点大全 七台河旅游 旅游经验 观光农业与乡村旅游 浙江安吉旅游攻略 湖南凤凰旅游 齐云山旅游攻略