2013-07-01 8 views
0

java를 사용하여 (.xls 및 .xlsx) 모두를 읽으려고합니다. xlsx를 제대로 읽을 수있었습니다. 나는 다음과 같은 코드HSSFCell MissingCell 정책 문제

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

나는 점점 오전 오류 XLS 파일을 읽고있다 그러나

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

+0

POI의 이전 버전을 사용 했습니까? – Sankumarsingh

+0

use System.out.println (HSSFWorkbook.class.getProtectionDomain(). getCodeSource(). getLocation()); 링크 된 poi 버전을 찾으십시오. – Sankumarsingh

답변

1

이 내용은 Apache POI FAQ에 있습니다. 보시면 아파치 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 클래스 중 하나가 당신이 괜찮을 것으로 예상 항아리를보고 할 때, 어디에서 오는지 인쇄 할 것이다!