2017-03-28 22:03:03 +00:00
|
|
|
#### Hyperlinks
|
|
|
|
|
2021-09-30 07:28:03 +00:00
|
|
|
<details>
|
|
|
|
<summary><b>Format Support</b> (click to show)</summary>
|
|
|
|
|
|
|
|
**Cell Hyperlinks**: XLSX/M, XLSB, BIFF8 XLS, XLML, ODS
|
|
|
|
|
|
|
|
**Tooltips**: XLSX/M, XLSB, BIFF8 XLS, XLML
|
|
|
|
|
|
|
|
</details>
|
|
|
|
|
2017-03-28 22:03:03 +00:00
|
|
|
Hyperlinks are stored in the `l` key of cell objects. The `Target` field of the
|
|
|
|
hyperlink object is the target of the link, including the URI fragment. Tooltips
|
|
|
|
are stored in the `Tooltip` field and are displayed when you move your mouse
|
|
|
|
over the text.
|
|
|
|
|
|
|
|
For example, the following snippet creates a link from cell `A3` to
|
2021-09-09 02:58:44 +00:00
|
|
|
<https://sheetjs.com> with the tip `"Find us @ SheetJS.com!"`:
|
2017-03-28 22:03:03 +00:00
|
|
|
|
|
|
|
```js
|
2021-09-30 07:28:03 +00:00
|
|
|
ws['A1'].l = { Target:"https://sheetjs.com", Tooltip:"Find us @ SheetJS.com!" };
|
2017-03-28 22:03:03 +00:00
|
|
|
```
|
|
|
|
|
|
|
|
Note that Excel does not automatically style hyperlinks -- they will generally
|
|
|
|
be displayed as normal text.
|
|
|
|
|
2021-09-30 07:28:03 +00:00
|
|
|
_Remote Links_
|
|
|
|
|
|
|
|
HTTP / HTTPS links can be used directly:
|
|
|
|
|
|
|
|
```js
|
|
|
|
ws['A2'].l = { Target:"https://docs.sheetjs.com/#hyperlinks" };
|
|
|
|
ws['A3'].l = { Target:"http://localhost:7262/yes_localhost_works" };
|
|
|
|
```
|
|
|
|
|
|
|
|
Excel also supports `mailto` email links with subject line:
|
|
|
|
|
|
|
|
```js
|
|
|
|
ws['A4'].l = { Target:"mailto:ignored@dev.null" };
|
|
|
|
ws['A5'].l = { Target:"mailto:ignored@dev.null?subject=Test Subject" };
|
|
|
|
```
|
|
|
|
|
|
|
|
_Local Links_
|
|
|
|
|
|
|
|
Links to absolute paths should use the `file://` URI scheme:
|
|
|
|
|
|
|
|
```js
|
|
|
|
ws['B1'].l = { Target:"file:///SheetJS/t.xlsx" }; /* Link to /SheetJS/t.xlsx */
|
|
|
|
ws['B2'].l = { Target:"file:///c:/SheetJS.xlsx" }; /* Link to c:\SheetJS.xlsx */
|
|
|
|
```
|
|
|
|
|
|
|
|
Links to relative paths can be specified without a scheme:
|
|
|
|
|
|
|
|
```js
|
|
|
|
ws['B3'].l = { Target:"SheetJS.xlsb" }; /* Link to SheetJS.xlsb */
|
|
|
|
ws['B4'].l = { Target:"../SheetJS.xlsm" }; /* Link to ../SheetJS.xlsm */
|
|
|
|
```
|
|
|
|
|
|
|
|
Relative Paths have undefined behavior in the SpreadsheetML 2003 format. Excel
|
|
|
|
2019 will treat a `..\` parent mark as two levels up.
|
|
|
|
|
|
|
|
_Internal Links_
|
|
|
|
|
2017-12-15 01:18:40 +00:00
|
|
|
Links where the target is a cell or range or defined name in the same workbook
|
|
|
|
("Internal Links") are marked with a leading hash character:
|
|
|
|
|
|
|
|
```js
|
2021-09-30 07:28:03 +00:00
|
|
|
ws['C1'].l = { Target:"#E2" }; /* Link to cell E2 */
|
|
|
|
ws['C2'].l = { Target:"#Sheet2!E2" }; /* Link to cell E2 in sheet Sheet2 */
|
|
|
|
ws['C3'].l = { Target:"#SomeDefinedName" }; /* Link to Defined Name */
|
2017-12-15 01:18:40 +00:00
|
|
|
```
|
|
|
|
|