2015-09-05 2 views
0

Я пытаюсь прочитать файл .xlsx с помощью Apache POI. Флягу файлы, которые я добавил в путь сборки являются:Тип HTMLDocument.Iterator не является общей ошибкой

 
poi-3.12-20150511.jar 
poi-ooxml-3.12-20150511.jar 
poi-ooxml-schemas-3.12-20150511.jar 
xmlbeans-2.6.0.jar

Я сейчас, используя этот метод readFromExcel:

public void readFromExcel(){ 


    String excelFilePath = "Books.xlsx"; 
    FileInputStream inputStream = new FileInputStream(new File(excelFilePath)); 


    XSSFWorkbook workbook = new XSSFWorkbook(inputStream); 

    XSSFSheet firstSheet = workbook.getSheetAt(0); 

    Iterator<Row> iterator = firstSheet.iterator(); 


     while (iterator.hasNext()) { 
      Row nextRow = iterator.next(); 
      Iterator<Cell> cellIterator = nextRow.cellIterator(); 

      while (cellIterator.hasNext()) { 
       Cell cell = cellIterator.next(); 

       switch (cell.getCellType()) { 
        case Cell.CELL_TYPE_STRING: 
         System.out.print(cell.getStringCellValue()); 
         break; 
        case Cell.CELL_TYPE_BOOLEAN: 
         System.out.print(cell.getBooleanCellValue()); 
         break; 
        case Cell.CELL_TYPE_NUMERIC: 
         System.out.print(cell.getNumericCellValue()); 
         break; 
       } 
       System.out.print(" - "); 
      } 
      System.out.println(); 
     } 

     workbook.close(); 
     inputStream.close(); 

Теперь я gettting эти две ошибки:

Тип HTMLDocument .Iterator не является общим; он не может быть параметризован аргументами Тип HTMLDocument.Iterator не является общим; его нельзя параметризовать аргументами

+0

Можете ли вы разместить свой импорт? Только мне кажется, что вы импортировали неправильный тип – Gagravarr

ответ

0

Вы можете использовать метод row.getCell(). Попробуйте это:

Workbook workbook = WorkbookFactory.create(yourFile.getInputstream()); 

Sheet sheet = workbook.getSheet(0);//1,2,3 

Iterator<Row> rowIterator = sheet.iterator(); 

     while (rowIterator.hasNext()) { 

      Row row = rowIterator.next(); 

      row.getCell(0); 
      row.getCell(1); 
} 
0

Вы импортировали неправильный итератора!

В вашем разделе импорта, вы должны иметь что-то вроде:

import blah.blah.HTMLDocument.Iterator; 

Вам нужно изменить, что к правильному, java.util.Iterator, например

import java.util.Iterator; 

Вы также сделали несколько других ошибки тоже ... Как explained here in the POI docs, если у вас есть File, отдайте это POI, а не FileInputStream!

Во-вторых, вы можете использовать для-каждой итерации, так как detailed here in the docs, например

for (Row row : sheet) { 
    for (Cell cell : row) { 
     ... 

Тогда вам даже не нужно явно использовать итератор, чтобы начать с!

Смежные вопросы