HTMLDocument.Iterator 类型不是一般错误
Posted
技术标签:
【中文标题】HTMLDocument.Iterator 类型不是一般错误【英文标题】:The type HTMLDocument.Iterator is not generic error 【发布时间】:2015-09-05 13:10:31 【问题描述】:我正在尝试使用 Apache POI 读取 .xlsx 文件。我添加到构建路径的jar文件是:
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();
现在我得到了这两个错误:
htmlDocument.Iterator 类型不是通用的;它不能用参数参数化 HTMLDocument.Iterator 类型不是通用的;它不能用参数进行参数化
【问题讨论】:
你能发布你的导入吗?只是在我看来你输入了错误的类型 【参考方案1】:您可以使用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);
【讨论】:
【参考方案2】:您导入了错误的迭代器!
在您的导入部分中,您必须具有以下内容:
import blah.blah.HTMLDocument.Iterator;
您需要将其更改为正确的java.util.Iterator,例如
import java.util.Iterator;
您还犯了一些其他错误...作为explained here in the POI docs,如果您有File
,请将其提供给POI,而不是FileInputStream
!
其次,可以使用for-each迭代,如detailed here in the docs,例如
for (Row row : sheet)
for (Cell cell : row)
...
那么你甚至不需要显式地使用迭代器来开始!
【讨论】:
以上是关于HTMLDocument.Iterator 类型不是一般错误的主要内容,如果未能解决你的问题,请参考以下文章