我正在尝试在Java中读取一个简单的.xlsx
private void readExcelData(String excel) throws Exception {
FileInputStream file = new FileInputStream(excel);
XSSFWorkbook workbook = new XSSFWorkbook(file);
XSSFSheet sheet = workbook.getSheetAt(0);
}
但是我得到Exception in thread "AWT-EventQueue-0" java.lang.IncompatibleClassChangeError: Found interface org.apache.poi.util.POILogger, but class was expected
我必须添加xmlbeans-xmlpublic-2.3.0.jar,否则它会给我Exception in thread "AWT-EventQueue-0" java.lang.NoClassDefFoundError: org/apache/xmlbeans/XmlException
也许与此有关。
有人可以解决吗?
答案 0 :(得分:0)
您有一个依赖项问题,找出正在使用哪个jar。也许需要相冲突的poi jar版本poi-4.1.0.jar,而您却拥有poi-4.0.1.jar。
ClassLoader classloader = org.apache.poi.poifs.filesystem.POIFSFileSystem.class.getClassLoader();
URL res = classloader.getResource("org/apache/poi/util/POILogger.class");
String path = res.getPath();
System.out.println("POI came from " + path);
如果您使用的是maven,请运行“ mvndependency:tree -Dverbose”以显示包含的jar。