rentiansheng пре 7 година
родитељ
комит
908ea25a43
1 измењених фајлова са 20 додато и 17 уклоњено
  1. 20 17
      lib.go

+ 20 - 17
lib.go

@@ -699,32 +699,35 @@ func readSheetFromFile(sc chan *indexedSheet, index int, rsheet xlsxSheet, fi *F
 	sheet.SheetFormat.DefaultRowHeight = worksheet.SheetFormatPr.DefaultRowHeight
 	sheet.SheetFormat.OutlineLevelCol = worksheet.SheetFormatPr.OutlineLevelCol
 	sheet.SheetFormat.OutlineLevelRow = worksheet.SheetFormatPr.OutlineLevelRow
-	for _, dd := range worksheet.DataValidations.DataValidattion {
+	if nil != worksheet.DataValidations {
+		for _, dd := range worksheet.DataValidations.DataValidattion {
 
-		parts := strings.Split(dd.Sqref, ":")
+			parts := strings.Split(dd.Sqref, ":")
 
-		minCol, minRow, err := GetCoordsFromCellIDString(parts[0])
-		if nil != err {
-			return fmt.Errorf("data validation %s", err.Error())
-		}
-		dd.Sqref = ""
-
-		if 2 == len(parts) {
-			maxCol, maxRow, err := GetCoordsFromCellIDString(parts[1])
+			minCol, minRow, err := GetCoordsFromCellIDString(parts[0])
 			if nil != err {
 				return fmt.Errorf("data validation %s", err.Error())
 			}
+			dd.Sqref = ""
 
-			if minCol == maxCol && minRow == maxRow {
-				sheet.Cell(minRow, minCol).SetDataValidation(dd)
-			} else {
-				for i := minCol; i <= maxCol; i++ {
-					sheet.Col(i).SetDataValidation(dd, minRow, maxRow)
+			if 2 == len(parts) {
+				maxCol, maxRow, err := GetCoordsFromCellIDString(parts[1])
+				if nil != err {
+					return fmt.Errorf("data validation %s", err.Error())
 				}
 
+				if minCol == maxCol && minRow == maxRow {
+					sheet.Cell(minRow, minCol).SetDataValidation(dd)
+				} else {
+					for i := minCol; i <= maxCol; i++ {
+						sheet.Col(i).SetDataValidation(dd, minRow, maxRow)
+					}
+
+				}
+			} else {
+				sheet.Cell(minRow, minCol).SetDataValidation(dd)
+
 			}
-		} else {
-			sheet.Cell(minRow, minCol).SetDataValidation(dd)
 
 		}