Просмотр исходного кода

fix:模板一过滤空白单元格,模板二考虑位置移动的问题

Roc 7 месяцев назад
Родитель
Сommit
fa445ff50a
1 измененных файлов с 25 добавлено и 5 удалено
  1. 25 5
      services/data/manual.go

+ 25 - 5
services/data/manual.go

@@ -285,16 +285,29 @@ func ImportManualData(path string, sysUser *system.Admin) (successCount, failCou
 			err = errors.New(errMsg)
 			return
 		}
+
+		templateType := 1 // 模板类型
+		minCellNum := 6   // 模板最小列数
 		headerCell := rowList[0].Cells
-		if len(headerCell) < 7 {
+
+		// 确定模板
+		for _, v := range headerCell {
+			if v.String() == "导入模板2/Import Template 2" {
+				templateType = 2
+				minCellNum = 2
+				break
+			}
+		}
+
+		// 如果小于最少列数,则报错
+		if len(headerCell) < minCellNum {
 			errMsg = sheet.Name + "页模板异常"
 			err = errors.New(errMsg)
 			return
 		}
 
-		templateName := headerCell[6].String()
-		switch templateName {
-		case "导入模板2/Import Template 2":
+		switch templateType {
+		case 2:
 			// 模板2需要走对应的取数逻辑
 			tmpIndexDataList, tmpFailDataList, err, errMsg = getDataByTemplate2(sheet, sysUser.AdminId)
 		default:
@@ -695,7 +708,14 @@ func getDataByTemplate1(sheet *xlsx.Sheet, sysUserId int) (indexDataList []Impor
 	for i := 2; i < maxRow; i++ {
 		row := sheet.Row(i)
 		cells := row.Cells
-		if len(cells) < 6 {
+		lenCell := len(cells)
+
+		// 过滤空白行
+		if lenCell <= 0 {
+			continue
+		}
+
+		if lenCell < 6 {
 			errMsg = "导入文件异常,请下载最新导入模板文件"
 			err = errors.New(errMsg)
 			return