0

ワークブックを作成し、すべての数式を評価したい:

Workbook wbTemp = new HSSFWorkbook(inp);

//do workbook stuff here

wbTemp.getCreationHelper().createFormulaEvaluator().evaluateAll();

このエラーが発生します:

The method evaluateAll() is undefined for the type FormulaEvaluator

ここで、evaluateAllが既存のメソッドであることが明確に示されている場合。これを引き起こしているのは何ですか?

4

1 に答える 1

1

クラスパスにPOIのコピーが2つあることはほぼ間違いありません。1つは、使用したい機能を含む新しい最新バージョンです。もう1つはそうではない古いバージョンであり、システムは古いバージョンを優先しているようです...

これは、POIFAQがまさにこのケースをカバーするのに十分な一般的な問題です。理想的には、クラスパスを見て、余分に古いPOIjarを特定してみてください。ただし、それでも問題が解決しない場合は、POIFAQの次のコードスニペットを試してください。

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のファイル名が出力されるため、古いコピーの出所を特定して削除できます。

于 2012-07-01T15:45:34.887 に答える