From a12dfd3ce6402f22baeb6415af271d8545c74f71 Mon Sep 17 00:00:00 2001 From: James Allen <24575899+jrdallen97@users.noreply.github.com> Date: Wed, 3 Mar 2021 12:30:31 +0000 Subject: Add support for setting hyperlink display & tooltip (closes #790) (#794) --- cell.go | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) (limited to 'cell.go') diff --git a/cell.go b/cell.go index 912ee6a..2567f19 100644 --- a/cell.go +++ b/cell.go @@ -431,6 +431,13 @@ func (f *File) GetCellHyperLink(sheet, axis string) (bool, string, error) { return false, "", err } +// HyperlinkOpts can be passed to SetCellHyperlink to set optional hyperlink +// attributes (e.g. display value) +type HyperlinkOpts struct { + Display *string + Tooltip *string +} + // SetCellHyperLink provides a function to set cell hyperlink by given // worksheet name and link URL address. LinkType defines two types of // hyperlink "External" for web site or "Location" for moving to one of cell @@ -446,7 +453,7 @@ func (f *File) GetCellHyperLink(sheet, axis string) (bool, string, error) { // // err := f.SetCellHyperLink("Sheet1", "A3", "Sheet1!A40", "Location") // -func (f *File) SetCellHyperLink(sheet, axis, link, linkType string) error { +func (f *File) SetCellHyperLink(sheet, axis, link, linkType string, opts ...HyperlinkOpts) error { // Check for correct cell name if _, _, err := SplitCellName(axis); err != nil { return err @@ -490,6 +497,15 @@ func (f *File) SetCellHyperLink(sheet, axis, link, linkType string) error { return fmt.Errorf("invalid link type %q", linkType) } + for _, o := range opts { + if o.Display != nil { + linkData.Display = *o.Display + } + if o.Tooltip != nil { + linkData.Tooltip = *o.Tooltip + } + } + ws.Hyperlinks.Hyperlink = append(ws.Hyperlinks.Hyperlink, linkData) return nil } -- cgit v1.2.1