Skip to content

Commit 3b807c4

Browse files
committed
This support get cell hyperlink for merged cells
1 parent 9dbba9f commit 3b807c4

File tree

3 files changed

+22
-21
lines changed

3 files changed

+22
-21
lines changed

cell.go

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -801,12 +801,13 @@ func (f *File) GetCellHyperLink(sheet, cell string) (bool, string, error) {
801801
if err != nil {
802802
return false, "", err
803803
}
804-
if cell, err = f.mergeCellsParser(ws, cell); err != nil {
805-
return false, "", err
806-
}
807804
if ws.Hyperlinks != nil {
808805
for _, link := range ws.Hyperlinks.Hyperlink {
809-
if link.Ref == cell {
806+
ok, err := f.checkCellInRangeRef(cell, link.Ref)
807+
if err != nil {
808+
return false, "", err
809+
}
810+
if link.Ref == cell || ok {
810811
if link.RID != "" {
811812
return true, f.getSheetRelationshipsTargetByID(sheet, link.RID), err
812813
}

datavalidation_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,7 @@ func TestDataValidation(t *testing.T) {
8787

8888
dataValidations, err = f.GetDataValidations("Sheet1")
8989
assert.NoError(t, err)
90-
assert.Len(t,dataValidations, 3)
90+
assert.Len(t, dataValidations, 3)
9191

9292
// Test get data validation on no exists worksheet
9393
_, err = f.GetDataValidations("SheetN")

excelize_test.go

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -480,7 +480,7 @@ func TestGetCellHyperLink(t *testing.T) {
480480

481481
ws, ok = f.Sheet.Load("xl/worksheets/sheet1.xml")
482482
assert.True(t, ok)
483-
ws.(*xlsxWorksheet).MergeCells = &xlsxMergeCells{Cells: []*xlsxMergeCell{{Ref: "A:A"}}}
483+
ws.(*xlsxWorksheet).Hyperlinks = &xlsxHyperlinks{Hyperlink: []xlsxHyperlink{{Ref: "A:A"}}}
484484
link, target, err = f.GetCellHyperLink("Sheet1", "A1")
485485
assert.EqualError(t, err, newCellNameToCoordinatesError("A", newInvalidCellNameError("A")).Error())
486486
assert.Equal(t, link, false)
@@ -1447,21 +1447,21 @@ func TestSetDefaultTimeStyle(t *testing.T) {
14471447
}
14481448

14491449
func TestAddVBAProject(t *testing.T) {
1450-
f := NewFile()
1451-
file, err := os.ReadFile(filepath.Join("test", "Book1.xlsx"))
1452-
assert.NoError(t, err)
1453-
assert.NoError(t, f.SetSheetProps("Sheet1", &SheetPropsOptions{CodeName: stringPtr("Sheet1")}))
1454-
assert.EqualError(t, f.AddVBAProject(file), ErrAddVBAProject.Error())
1455-
file, err = os.ReadFile(filepath.Join("test", "vbaProject.bin"))
1456-
assert.NoError(t, err)
1457-
assert.NoError(t, f.AddVBAProject(file))
1458-
// Test add VBA project twice
1459-
assert.NoError(t, f.AddVBAProject(file))
1460-
assert.NoError(t, f.SaveAs(filepath.Join("test", "TestAddVBAProject.xlsm")))
1461-
// Test add VBA with unsupported charset workbook relationships
1462-
f.Relationships.Delete(defaultXMLPathWorkbookRels)
1463-
f.Pkg.Store(defaultXMLPathWorkbookRels, MacintoshCyrillicCharset)
1464-
assert.EqualError(t, f.AddVBAProject(file), "XML syntax error on line 1: invalid UTF-8")
1450+
f := NewFile()
1451+
file, err := os.ReadFile(filepath.Join("test", "Book1.xlsx"))
1452+
assert.NoError(t, err)
1453+
assert.NoError(t, f.SetSheetProps("Sheet1", &SheetPropsOptions{CodeName: stringPtr("Sheet1")}))
1454+
assert.EqualError(t, f.AddVBAProject(file), ErrAddVBAProject.Error())
1455+
file, err = os.ReadFile(filepath.Join("test", "vbaProject.bin"))
1456+
assert.NoError(t, err)
1457+
assert.NoError(t, f.AddVBAProject(file))
1458+
// Test add VBA project twice
1459+
assert.NoError(t, f.AddVBAProject(file))
1460+
assert.NoError(t, f.SaveAs(filepath.Join("test", "TestAddVBAProject.xlsm")))
1461+
// Test add VBA with unsupported charset workbook relationships
1462+
f.Relationships.Delete(defaultXMLPathWorkbookRels)
1463+
f.Pkg.Store(defaultXMLPathWorkbookRels, MacintoshCyrillicCharset)
1464+
assert.EqualError(t, f.AddVBAProject(file), "XML syntax error on line 1: invalid UTF-8")
14651465
}
14661466

14671467
func TestContentTypesReader(t *testing.T) {

0 commit comments

Comments
 (0)