Java apache poi-找到条件后继续循环
我有这个代码,现在我想做的是检查这个循环是否找到了ABC01,然后它将继续循环寻找“2018”。我试着像代码中那样进行检查和增量,但它不起作用。请帮帮我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
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。