我正在尝试使用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类型不是通用的;它不能用参数
参数化
答案 0 :(得分:0)
您可以使用$scope.selected = 'worker'.
方法。
试试这个:
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
!
其次,您可以使用for-each迭代,如detailed here in the docs,例如
for (Row row : sheet) {
for (Cell cell : row) {
...
然后你甚至不需要显式地使用迭代器来开始!