POI操作Excel报错java.lang.NoSuchMethodError
来源:网络收集 点击: 时间:2024-06-01检查报错日志如下

定位错误
1、可能是编码出问题,检查编码
3/8生成EXCEL文件类是否有如下编码:
response.setContentType(application/x-msdownload);
response.setCharacterEncoding(utf-8);
response.setHeader(Content-Disposition, attachment;filename= + new String( fileName.getBytes(gb2312), ISO8859-1 ));
4/82、检查导入poi的包是否存在多个版本,删除多余版本。
5/8dependency
groupIdorg.apache.poi/groupId
artifactIdpoi-ooxml/artifactId
version3.17/version
/dependency
dependency
groupIdorg.apache.poi/groupId
artifactIdpoi-ooxml-schemas/artifactId
version3.17/version
/dependency
dependency
groupIdorg.apache.poi/groupId
artifactIdpoi/artifactId
version3.17/version
/dependency
6/8如果不确定自己引用的是哪个包,可以用一下代码检测class文件走哪个jar包

检测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/8将旧的jar从Java build path中删除掉,把workspace里面的包删了再把project clean一下,然后重新部署。
版权声明:
1、本文系转载,版权归原作者所有,旨在传递信息,不代表看本站的观点和立场。
2、本站仅提供信息发布平台,不承担相关法律责任。
3、若侵犯您的版权或隐私,请联系本站管理员删除。
4、文章链接:http://www.1haoku.cn/art_869974.html