"插入链接"现在不再生成 =HYPERLINK(’’,’’)
公式。
以前,如果您将一个带有值“X”的单元格链接起来,它会被转换为公式=HYPERLINK(*link*,’X’)
两天前,“插入链接”发生了变化。
现在单元格的内容保持不变,只是有下划线。
使用脚本,我该如何从单元格中提取链接,既然它的值和公式都不包含此信息?
我搜索了文档,但我能找到的唯一与链接相关的方法是setShowHyperlink(showHyperlink)
"插入链接"现在不再生成 =HYPERLINK(’’,’’)
公式。
以前,如果您将一个带有值“X”的单元格链接起来,它会被转换为公式=HYPERLINK(*link*,’X’)
两天前,“插入链接”发生了变化。
现在单元格的内容保持不变,只是有下划线。
使用脚本,我该如何从单元格中提取链接,既然它的值和公式都不包含此信息?
我搜索了文档,但我能找到的唯一与链接相关的方法是setShowHyperlink(showHyperlink)
RichTextValue
对象中检索超链接。也就是说,我认为规范已经更改,使得使用RichTextValue
将超链接给予文本。X
。
- 此单元格手动链接到URL,例如https://www.google.com
。=HYPERLINK("https://www.google.com","X")
。从这种情况检索URL的示例脚本如下:var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Sheet1");
var url = sheet.getRange("A1").getRichTextValue().getLinkUrl();
console.log(url);
In the current stage, the multiple hyperlinks can be added to the texts in one cell. For example, when 2 URLs are put to the text in a cell, you can use the following sample script. In this sample, a text of url1, url2
is put to a cell "A1", and url1
and url2
are linked with each link.
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Sheet1");
var RichTextValue = SpreadsheetApp.newRichTextValue()
.setText("url1, url2")
.setLinkUrl(0, 4, "https://url1/")
.setLinkUrl(6, 10, "https://url2/")
.build();
sheet.getRange("A1").setRichTextValue(RichTextValue);
When the multiple URLs are retrieved from the text in a cell, you can use the following sample script.
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Sheet1");
var range = sheet.getRange("A1");
var RichTextValue = range.getRichTextValue().getRuns();
var res = RichTextValue.reduce((ar, e) => {
var url = e.getLinkUrl();
if (url) ar.push(url);
return ar;
}, []);
console.log(res);
截至2020年6月12日的更新,官方文档中新增了获取链接网址()
和设置链接网址(linkUrl)
的文档。
getLinkUrl()
函数? - TheMastergetLinkUrl()
方法。但是现在,我发现当我查找getLinkUrl()
方法的官方文档时,发现它没有被列出来。这让我很惊讶。似乎官方文档还没有更新。但我相信官方文档会在不久的将来更新。 - TanaikegetLinkUrl()
和setLinkUrl(linkUrl)
的文档已经添加到官方文档中。 - Tanaikee
是什么? - TheMaster