Java apache poi-找到条件后继续循环

Java apache poi-找到条件后继续循环,java,apache-poi,Java,Apache Poi,我有这个代码,现在我想做的是检查这个循环是否找到了ABC01,然后它将继续循环寻找“2018”。我试着像代码中那样进行检查和增量,但它不起作用。请帮帮我 public static void ReadFile() throws Exception { FileInputStream file = new FileInputStream(new File("C:xx")); XSSFWorkbook wb = new XSSFWorkbook(file); XSSFShee

我有这个代码,现在我想做的是检查这个循环是否找到了ABC01,然后它将继续循环寻找“2018”。我试着像代码中那样进行检查和增量,但它不起作用。请帮帮我

public static void ReadFile() throws Exception {
    FileInputStream file = new FileInputStream(new File("C:xx"));
    XSSFWorkbook wb = new XSSFWorkbook(file);
    XSSFSheet sheet = wb.getSheetAt(0);

    for (Iterator<Row> iterator = sheet.rowIterator(); iterator.hasNext();) {
        XSSFRow row = (XSSFRow) iterator.next();
        for (int i = 0; i < row.getPhysicalNumberOfCells(); i++) {
            XSSFCell cell = row.getCell(i);
            DataFormatter formatter = new DataFormatter();
            String val = formatter.formatCellValue(cell);
            /* System.out.println(val); */

            if (val.equals("ABC01")) {
                i++;
            }
            if (val.equals("2018")) {
                System.out.print("XX");
            }

        }

    }
}
public static void ReadFile()引发异常{
FileInputStream文件=新的FileInputStream(新文件(“C:xx”);
XSSF工作簿wb=新XSSF工作簿(文件);
XSSFSheet-sheet=wb.getSheetAt(0);
for(迭代器迭代器=sheet.rowIterator();迭代器.hasNext();){
XSSFRow=(XSSFRow)迭代器.next();
对于(int i=0;i
根据评论中的讨论,以下代码应该适合您

public static void ReadFile() throws Exception {
FileInputStream file = new FileInputStream(new File("C:xx"));
XSSFWorkbook wb = new XSSFWorkbook(file);
XSSFSheet sheet = wb.getSheetAt(0);
XSSFRow row = null;
XSSFCell cell = null;

DataFormatter formatter = new DataFormatter();
String val;

for (Iterator<Row> iterator = sheet.rowIterator(); iterator.hasNext();) {
    row = (XSSFRow) iterator.next();

    for (int i = 0; i < row.getPhysicalNumberOfCells(); i++) {
        cell = row.getCell(i);           
        val = formatter.formatCellValue(cell);
        /* System.out.println(val); */

        if (val.equals("ABC01")) {
            i++;

            cell = row.getCell(i);
            val = formatter.formatCellValue(cell);

            if (val.equals("2018")) {
                System.out.print("XX");
            }
        }


        }

    }
}
public static void ReadFile()引发异常{
FileInputStream文件=新的FileInputStream(新文件(“C:xx”);
XSSF工作簿wb=新XSSF工作簿(文件);
XSSFSheet-sheet=wb.getSheetAt(0);
XSSFRow行=null;
XSSFCell单元=null;
DataFormatter formatter=新的DataFormatter();
字符串val;
for(迭代器迭代器=sheet.rowIterator();迭代器.hasNext();){
row=(XSSFRow)迭代器.next();
对于(int i=0;i
如果该循环找到了ABC01,那么它将继续循环查找“2018”。
--没有单独的循环查找2018;代码在一个循环中一个接一个地执行两个if条件。如果您特别提到代码中不起作用的内容,那么回答起来就很容易了。@BalwinderSingh我明白了。但是,如果我使用增量i++将第二个条件放在第一个条件中,但它仍然不起作用。为什么要查找这两个值?您的问题陈述是什么?@BalwinderSingh我的excel文件中有多个列和行。现在我循环所有的数据,同时我想寻找ABC01和2018,以便我输出xxx,这段代码有效。谢谢各位。非常感谢你抽出时间陪我。干杯@sharky。