2016-06-03 8 views
3

Apache POI XSSF를 사용하여 통합 문서를 작성하는 간단한 지침을 따라했습니다. 동일한 가이드에 따라 Excel 시트를 쓸 수 있었지만 코드를 읽으려고 할 때 코드 뒤에 오류가 표시됩니다.NoSuchFieldError - Excel 시트를 자바에서 읽을 때

코드 :

try { 
    FileInputStream file = new FileInputStream(new File("howtodoinjava_demo.xlsx")); 

    // Create Workbook instance holding reference to .xlsx file 
    XSSFWorkbook workbook = new XSSFWorkbook(file); 

    // Get first/desired sheet from the workbook 
    XSSFSheet sheet = workbook.getSheetAt(0); 

    // Iterate through each rows one by one 
    Iterator<Row> rowIterator = sheet.iterator(); 
    while (rowIterator.hasNext()) { 
     Row row = rowIterator.next(); 
     // For each row, iterate through all the columns 
     Iterator<Cell> cellIterator = row.cellIterator(); 

     while (cellIterator.hasNext()) { 
      Cell cell = cellIterator.next(); 
      // Check the cell type and format accordingly 
      switch (cell.getCellType()) { 
      case Cell.CELL_TYPE_NUMERIC: 
       System.out.print(cell.getNumericCellValue() + "t"); 
       break; 
      case Cell.CELL_TYPE_STRING: 
       System.out.print(cell.getStringCellValue() + "t"); 
       break; 
      } 
     } 
     System.out.println(""); 
    } 
    file.close(); 
} catch (Exception e) { 
    e.printStackTrace(); 
} 

오류 출력 : 조금 둘러보고 후

Exception in thread "main" java.lang.NoSuchFieldError: RAW_XML_FILE_HEADER at org.apache.poi.openxml4j.opc.internal.ZipHelper.verifyZipHeader(ZipHelper.java:179) at org.apache.poi.openxml4j.opc.internal.ZipHelper.openZipStream(ZipHelper.java:228) at org.apache.poi.openxml4j.opc.ZipPackage.(ZipPackage.java:93) at org.apache.poi.openxml4j.opc.OPCPackage.open(OPCPackage.java:294) at org.apache.poi.util.PackageHelper.open(PackageHelper.java:37) at org.apache.poi.xssf.usermodel.XSSFWorkbook.(XSSFWorkbook.java:273) at com.wtolliver.spring.test.ReadExcel.readExcel(ReadExcel.java:18) at com.wtolliver.spring.test.App.main(App.java:17)

+0

Excel 파일의 상태가 양호합니까? 손상된 것 같습니다. –

답변

4

. 나는 APACHE POI에 대한 문서를 찾아 보았고 이것이 상수 중 하나임을 알았다. 하지만 결국, 내가 사용한 모든 자습서는 2014 년 이전 이었으므로 Maven POM을 아파치 POI 및 POI-OOXML 버전 3.11로 변경했습니다. 이제 작동 중입니다.

+0

귀하의 답변이 내 프로젝트를 저장했습니다! 많은 감사 :) –

0

동일한 오류가 발생했습니다. XSSFWorkbook diclaration을 HSSFWorkbook으로 변경해보십시오. 그것은 나를 위해 일했습니다.

1

다른 상수로 동일한 오류가 발생했습니다.

스레드 "main"의 예외 java.lang.NoSuchFieldError : RETURN_NULL_AND_BLANK poi.

롯이 있지만 답변이 없습니다. 나는 아파치 poi-ooxml-3.11을 사용하고 있었고 나중에 3.17로 바꿨다.

희망이 있으면 도움이 될만한 사람입니다.