Excel工作表中的迭代错误

时间:2015-10-03 07:53:01

标签: java excel iteration

当我尝试通过Java环境使用Excel工作表从项目列表中选择项目时,只选择并执行第一个项目。下一组迭代没有发生。

int i=1;

while (i<=sheet.getLastRowNum()  )  
{

    row = sheet.getRow(i);

    String w = row.getCell(0).getStringCellValue();
    //  Processing : logic on "items" from excel 

    i++;
}

1 个答案:

答案 0 :(得分:0)

好的,然后在您的代码之前首先尝试此示例。检查每个列和行是否已访问。也许更好的方法是使用迭代器。

try {

    FileInputStream file = new FileInputStream(new File("C:\\test.xls"));

    //Get the workbook instance for XLS file 
    HSSFWorkbook workbook = new HSSFWorkbook(file);

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

    //Iterate through each rows from first sheet
    Iterator<Row> rowIterator = sheet.iterator();
    while(rowIterator.hasNext()) {
        Row row = rowIterator.next();

        //For each row, iterate through each columns
        Iterator<Cell> cellIterator = row.cellIterator();
        while(cellIterator.hasNext()) {

            Cell cell = cellIterator.next();

            switch(cell.getCellType()) {
                case Cell.CELL_TYPE_BOOLEAN:
                    System.out.print(cell.getBooleanCellValue() + "\t\t");
                    break;
                case Cell.CELL_TYPE_NUMERIC:
                    System.out.print(cell.getNumericCellValue() + "\t\t");
                    break;
                case Cell.CELL_TYPE_STRING:
                    System.out.print(cell.getStringCellValue() + "\t\t");
                    break;
            }
        }
        System.out.println("");
    }
    file.close();
    FileOutputStream out = 
        new FileOutputStream(new File("C:\\test.xls"));
    workbook.write(out);
    out.close();

} catch (FileNotFoundException e) {
    e.printStackTrace();
} catch (IOException e) {
    e.printStackTrace();
}