diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/util/ParseWord07.java b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/util/ParseWord07.java index d80962c..64df2cb 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/util/ParseWord07.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/util/ParseWord07.java @@ -111,7 +111,7 @@ PoiPublicUtil.setWordText(currentRun, objx.toString()); } }); - }else { + } else { currentRun.setText("", 0); } } else { @@ -236,6 +236,7 @@ if (row == null) { return; } + int tempIndex = 1; int startIndex = positionIndex, maxEndIndex = positionIndex; for (int i = 0; i < row.getTableCells().size(); i++) { if (!mergeIndexMap.containsKey(i)) { @@ -243,7 +244,10 @@ } int endIndex = positionIndex; int rowIndex = positionIndex + 1; - while ((maxEndIndex > positionIndex && rowIndex <= maxEndIndex)) { + while ((maxEndIndex > positionIndex && rowIndex <= maxEndIndex) || tempIndex == 1) { + if (rowIndex >= table.getRows().size()) { + break; + } if (table.getRow(rowIndex).getTableCells().get(i).getText().equals(row.getCell(i).getText())) { endIndex = rowIndex; rowIndex++; @@ -251,10 +255,11 @@ break; } } - maxEndIndex =endIndex; + maxEndIndex = endIndex; if (endIndex > startIndex) { doMergeCell(table, startIndex, endIndex, i); } + tempIndex++; } positionIndex = maxEndIndex + 1; }