Browse Source

Prevent creation of null rows when opening files with trailing empty rows

Ryan Hollis 8 years ago
parent
commit
c22a090bc6
2 changed files with 8 additions and 10 deletions
  1. 0 1
      .travis.yml
  2. 8 9
      lib.go

+ 0 - 1
.travis.yml

@@ -3,7 +3,6 @@ language: go
 go:
 go:
   - 1.8.x
   - 1.8.x
   - 1.9.x
   - 1.9.x
-  - tip
 
 
 script:
 script:
   - go vet ./...
   - go vet ./...

+ 8 - 9
lib.go

@@ -505,7 +505,7 @@ func readRowsFromSheet(Worksheet *xlsxWorksheet, file *File, sheet *Sheet, rowLi
 	var rows []*Row
 	var rows []*Row
 	var cols []*Col
 	var cols []*Col
 	var row *Row
 	var row *Row
-	var minCol, maxCol, minRow, maxRow, colCount, rowCount int
+	var minCol, maxCol, maxRow, colCount, rowCount int
 	var reftable *RefTable
 	var reftable *RefTable
 	var err error
 	var err error
 	var insertRowIndex, insertColIndex int
 	var insertRowIndex, insertColIndex int
@@ -516,9 +516,9 @@ func readRowsFromSheet(Worksheet *xlsxWorksheet, file *File, sheet *Sheet, rowLi
 	}
 	}
 	reftable = file.referenceTable
 	reftable = file.referenceTable
 	if len(Worksheet.Dimension.Ref) > 0 && len(strings.Split(Worksheet.Dimension.Ref, ":")) == 2 && rowLimit == NoRowLimit {
 	if len(Worksheet.Dimension.Ref) > 0 && len(strings.Split(Worksheet.Dimension.Ref, ":")) == 2 && rowLimit == NoRowLimit {
-		minCol, minRow, maxCol, maxRow, err = getMaxMinFromDimensionRef(Worksheet.Dimension.Ref)
+		minCol, _, maxCol, maxRow, err = getMaxMinFromDimensionRef(Worksheet.Dimension.Ref)
 	} else {
 	} else {
-		minCol, minRow, maxCol, maxRow, err = calculateMaxMinFromWorksheet(Worksheet)
+		minCol, _, maxCol, maxRow, err = calculateMaxMinFromWorksheet(Worksheet)
 	}
 	}
 	if err != nil {
 	if err != nil {
 		panic(err.Error())
 		panic(err.Error())
@@ -528,7 +528,6 @@ func readRowsFromSheet(Worksheet *xlsxWorksheet, file *File, sheet *Sheet, rowLi
 	colCount = maxCol + 1
 	colCount = maxCol + 1
 	rows = make([]*Row, rowCount)
 	rows = make([]*Row, rowCount)
 	cols = make([]*Col, colCount)
 	cols = make([]*Col, colCount)
-	insertRowIndex = minRow
 	for i := range cols {
 	for i := range cols {
 		cols[i] = &Col{
 		cols[i] = &Col{
 			Hidden: false,
 			Hidden: false,
@@ -559,11 +558,6 @@ func readRowsFromSheet(Worksheet *xlsxWorksheet, file *File, sheet *Sheet, rowLi
 		}
 		}
 	}
 	}
 
 
-	// insert leading empty rows that is in front of minRow
-	for rowIndex := 0; rowIndex < minRow; rowIndex++ {
-		rows[rowIndex] = makeEmptyRow(sheet)
-	}
-
 	numRows := len(rows)
 	numRows := len(rows)
 	for rowIndex := 0; rowIndex < len(Worksheet.SheetData.Row); rowIndex++ {
 	for rowIndex := 0; rowIndex < len(Worksheet.SheetData.Row); rowIndex++ {
 		rawrow := Worksheet.SheetData.Row[rowIndex]
 		rawrow := Worksheet.SheetData.Row[rowIndex]
@@ -633,6 +627,11 @@ func readRowsFromSheet(Worksheet *xlsxWorksheet, file *File, sheet *Sheet, rowLi
 		}
 		}
 		insertRowIndex++
 		insertRowIndex++
 	}
 	}
+
+	// insert trailing empty rows for the rest of the file
+	for ; insertRowIndex < maxRow; insertRowIndex++ {
+		rows[insertRowIndex] = makeEmptyRow(sheet)
+	}
 	return rows, cols, colCount, rowCount
 	return rows, cols, colCount, rowCount
 }
 }