gpt4 book ai didi

java - 何时使用 rowiterator 和 iterator 遍历 Excel 工作表的行

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:41:46 25 4
gpt4 key购买 nike

读取 Excel 电子表格 (.xlsx) 内容的代码包含在下面。为了遍历每一行,我使用了工作表对象的 iterator() 方法,效果很好。另外,如果我使用 rowIterator() 方法,它也能正常工作。

这两个函数有什么区别,什么时候用哪个。

{

FileInputStream fis = new FileInputStream(new File("E:\\readexcel.xlsx"));
XSSFWorkbook wb = new XSSFWorkbook(fis);
XSSFSheet sh = wb.getSheetAt(0);
Iterator<Row> rowIterator = sh.iterator(); // sh.rowIterator(); -- also works well
while(rowIterator.hasNext()){
Row row = rowIterator.next();
Iterator<Cell> cellIterator = row.iterator(); //row.cellIterator();-- also works well
while(cellIterator.hasNext()){
Cell cell = cellIterator.next();
System.out.print(cell.getStringCellValue()+"\t");
}
System.out.println("");
}

}

最佳答案

XSSFSheet 的文档是这样说的:

rowIterator - Returns an iterator of the physical rows

iterator - Alias for rowIterator() to allow foreach loops

所以基本上它们返回相同的值,但是添加了第二个值以支持 Java 的 for-each loop .换句话说,您可以直接运行 for-each 循环,而不是获取迭代器并运行 while 循环,这样可以使代码更短且更易读:

FileInputStream fis = new FileInputStream(new File("E:\\readexcel.xlsx"));
XSSFWorkbook wb = new XSSFWorkbook(fis);
XSSFSheet sh = wb.getSheetAt(0);
for(Row row : sh) {
for(Cell cell : row) {
System.out.print(cell.getStringCellValue()+"\t");
}
}
...

关于java - 何时使用 rowiterator 和 iterator 遍历 Excel 工作表的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36109744/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com