0

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 を使用しています

4

1 に答える 1

1

これはApache POI FAQでカバーされています。見ると、Apache POI の古いコピーがクラスパスのどこかに潜んでいることがわかります。つまり、実際には 2 つのバージョンが混在して実行されています。これはサポートされていません - すべての POI jar は同じバージョンである必要があります!

このトピックに関する FAQ エントリには、実際に使用されている 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 クラスの 1 つがどこから来たのかが出力されます。

于 2013-07-01T13:21:42.367 に答える