Browse Source

fix:excel只有一行/一列数据时的导致移除上下左右空行败的bug修复

Roc 1 year ago
parent
commit
1ed0aa0ce2
1 changed files with 34 additions and 29 deletions
  1. 34 29
      services/excel/lucky_sheet.go

+ 34 - 29
services/excel/lucky_sheet.go

@@ -460,21 +460,23 @@ func handleTableDataList(tableDataList [][]LuckySheetDataValue, luckySheetDataCo
 		flag = false
 		//尾部
 		deleteBottomRowIndexList := make([]int, 0)
-		for rowIndex := lenRow - 1; rowIndex >= 0; rowIndex-- {
-			isDelete := true
-			for _, v := range tableDataList[rowIndex] {
-				if v.Monitor != `` {
-					isDelete = false
-					flag = true
+		if len(tableDataList) > 1 {
+			for rowIndex := lenRow - 1; rowIndex >= 0; rowIndex-- {
+				isDelete := true
+				for _, v := range tableDataList[rowIndex] {
+					if v.Monitor != `` {
+						isDelete = false
+						flag = true
+						break
+					}
+				}
+				if flag {
 					break
 				}
-			}
-			if flag {
-				break
-			}
-			if isDelete {
-				deleteBottomRowIndexList = append(deleteBottomRowIndexList, rowIndex)
-				removeBottomRow++
+				if isDelete {
+					deleteBottomRowIndexList = append(deleteBottomRowIndexList, rowIndex)
+					removeBottomRow++
+				}
 			}
 		}
 
@@ -526,25 +528,28 @@ func handleTableDataList(tableDataList [][]LuckySheetDataValue, luckySheetDataCo
 		flag = false
 		//右边
 		deleteTailColumnIndexList := make([]int, 0)
-		for columnIndex := lenColumn - 1; columnIndex >= 0; columnIndex-- {
-			isDelete := true
-			for _, v := range tableDataList {
-				//如果一列都没有,说明是上面几行是空行,没有数据
-				if len(v) <= 0 {
-					continue
+		// 数据要大于1列才会处理
+		if lenColumn > 1 {
+			for columnIndex := lenColumn - 1; columnIndex >= 0; columnIndex-- {
+				isDelete := true
+				for _, v := range tableDataList {
+					//如果一列都没有,说明是上面几行是空行,没有数据
+					if len(v) <= 0 {
+						continue
+					}
+					if v[columnIndex].Monitor != `` || (v[columnIndex].MergeCell.Column != columnIndex && v[columnIndex].MergeCell.Column != 0) {
+						isDelete = false
+						flag = true
+						break
+					}
 				}
-				if v[columnIndex].Monitor != `` || (v[columnIndex].MergeCell.Column != columnIndex && v[columnIndex].MergeCell.Column != 0) {
-					isDelete = false
-					flag = true
+				if flag {
 					break
 				}
-			}
-			if flag {
-				break
-			}
-			if isDelete {
-				deleteTailColumnIndexList = append(deleteTailColumnIndexList, columnIndex)
-				removeRightColumn++
+				if isDelete {
+					deleteTailColumnIndexList = append(deleteTailColumnIndexList, columnIndex)
+					removeRightColumn++
+				}
 			}
 		}