关于poi智能操作2003 不能2007的问题java.lang.NoSuchMethodError: org.apache.poi.util.POILogger.log(I[Ljava/lang/Object;)V的解决方法
这个问题卡了我很久 ,一般这种原因是poi不一致
如果有报错类似:java.lang.NoSuchMethodError: org.apache.poi.util.POILogger.log(I[Ljava/lang/Object;)V
恭喜你!就是poi不一致导致的
可以用下面的方法来测试你使用的包
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.xssf.usermodel.XSSFWorkbook.class.getClassLoader();
res = classloader.getResource("org.apache.poi.xssf.usermodel.XSSFWorkbook.class");
if(res != null)
path = res.getPath();
System.out.println("work path is " + path);
注意org.apache.poi.poifs.filesystem.POIFSFileSystem.class.getClassLoader();
前面的org.apache.poi.poifs.filesystem.POIFSFileSystem 是你引入的包
看看打印出来的jar是多少,如果是jar 不一致 删除掉重启就可以了