我在Java中使用Apache POI读取Excel文件。但是,每当我尝试跳过当前行并使用嵌套的for循环读取excel工作表的下一行时,都会遇到问题。
例如,假设我有一个看起来像这样的表(其中“-”表示一个空单元格):
self pace baseline 1 13 - - - -
self pace baseline 5 72 23 76 2 90
self pace baseline 6 43 12 45 11 10
self pace baseline 8 91 13 74 76 12
理想情况下,我的代码将创建6个包含每一列内容的数组,如下所示:
[1,5,6,8], [13,72,43,91], [23,12,13], [76,45,74]... etc.
但是,这是我得到的:
[1,5,6,8], [13,72,43,91], [13,23,12,13], [13,76,45,74], [13,2,11,76], [13,90,10,12]
我认为代码的else部分中的Continue将跳到循环的下一个迭代,但这不是正在发生的事情。该行中最后一个非空单元格的内容似乎随后会插入到每个数组中。
这是我的示例代码:
int inTotalRows = inSheet.getPhysicalNumberOfRows();
for (int j = 2; j < 7; j++) {
for (int i = 2; i < inTotalRows; i++) {
row1 = inSheet.getRow(i);
inCell = row1.getCell(j);
memoCheck = row1.getCell(1);
String memoCheckText = formatter.formatCellValue(memoCheck).toLowerCase().replaceAll("\\s", "");
referenceCheck = row1.getCell(0);
String referenceCheckText = formatter.formatCellValue(referenceCheck).toLowerCase().replaceAll("\\s", "");
if (memoCheckText.contains("baseline") && (referenceCheckText.equals("selfpace") || referenceCheckText.equals("self-pace"))) {
if (inCell != null) {
String text = formatter.formatCellValue(inCell);
Double textToDouble = Double.parseDouble(text);
BSarray[i] = textToDouble;
} else {
continue;
}
编辑:这与“突破Java中的嵌套循环”不重复。相反,我试图弄清楚为什么我的数组为什么要包含最后一个非空单元格值,即使我已经指定要使用continue跳过并继续进行数组的下一次迭代