HSSFCell MissingCell政策问题

时间:2013-07-01 10:31:54

标签: excel apache-poi nosuchmethoderror poi-hssf

我正在尝试使用java读取excel(.xls和.xlsx)。我能够正确阅读xlsx。但是当我使用以下代码阅读xls文件时

final HSSFCell cell = row.getCell(i, Row.RETURN_BLANK_AS_NULL);

我收到错误

  

java.lang.NoSuchMethodError:org.apache.poi.hssf.usermodel.HSSFRow.getCell(ILorg / apache / poi / ss / usermodel / Row $ MissingCellPolicy;)Lorg / apache / poi / hssf / usermodel /

请帮忙。我正在使用poi-3.9-20121203.jar

1 个答案:

答案 0 :(得分:1)

Apache POI FAQ中介绍了这一点。如果你看一下,你会发现你的类路径中有一个较旧的Apache POI副本潜伏在某个地方,所以你实际上是在运行两个版本的混合体。这是不支持的 - 所有POI罐都需要来自同一个版本!

FAQ entry on the topic有一些示例代码,您可以使用它们来查找实际使用的Jar,因此您可以希望找到旧的jar。你想做类似的事情:

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("Core POI came from " + path);

这将打印出其中一个核心POI类来自哪里,当报告你希望你应该没问题的jar时!