Forráskód Böngészése

Fix prefix check for getExtent for merged cells

santsai 9 éve
szülő
commit
1ae55c0ea5
2 módosított fájl, 10 hozzáadás és 5 törlés
  1. 1 1
      xmlWorksheet.go
  2. 9 4
      xmlWorksheet_test.go

+ 1 - 1
xmlWorksheet.go

@@ -253,7 +253,7 @@ func (mc *xlsxMergeCells) getExtent(cellRef string) (int, int, error) {
 		return 0, 0, nil
 	}
 	for _, cell := range mc.Cells {
-		if strings.HasPrefix(cell.Ref, cellRef) {
+		if strings.HasPrefix(cell.Ref, cellRef+":") {
 			parts := strings.Split(cell.Ref, ":")
 			startx, starty, err := getCoordsFromCellIDString(parts[0])
 			if err != nil {

+ 9 - 4
xmlWorksheet_test.go

@@ -188,11 +188,16 @@ func (w *WorksheetSuite) TestUnmarshallWorksheetWithMergeCells(c *C) {
 // MergeCells.getExtents returns the horizontal and vertical extent of
 // a merge that begins at a given reference.
 func (w *WorksheetSuite) TestMergeCellsGetExtent(c *C) {
-	mc := xlsxMergeCells{Count: 1}
-	mc.Cells = make([]xlsxMergeCell, 1)
-	mc.Cells[0] = xlsxMergeCell{Ref: "A1:B5"}
+	mc := xlsxMergeCells{Count: 2}
+	mc.Cells = make([]xlsxMergeCell, 2)
+	mc.Cells[0] = xlsxMergeCell{Ref: "A11:A12"}
+	mc.Cells[1] = xlsxMergeCell{Ref: "A1:C5"}
 	h, v, err := mc.getExtent("A1")
 	c.Assert(err, IsNil)
-	c.Assert(h, Equals, 1)
+	c.Assert(h, Equals, 2)
 	c.Assert(v, Equals, 4)
+	h, v, err = mc.getExtent("A11")
+	c.Assert(err, IsNil)
+	c.Assert(h, Equals, 0)
+	c.Assert(v, Equals, 1)
 }