POI操作Excel报错java.lang.NoSuchMethodError

2025-04-24 17:58:35

1、检查报错日志如下

POI操作Excel报错java.lang.NoSuchMethodError

2、定位错误1、可能是编码出问题,检查编码

3、生成EXCEL文件类是否有如下编码:response.setCo艘绒庳焰ntentType("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.p泠贾高框oifs.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一下,然后重新部署。

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢