“插入链接”没有产生 =HYPERLINK(’’,’’)
了。
之前,如果您使用值“X”链接单元格。它被转换成公式=HYPERLINK(*link*,’X’)
两天前“插入链接”改变了。
现在单元格的内容保持不变,只是加了下划线。
使用脚本,既然单元格的值和公式都不包含此信息,我该如何从单元格中提取链接?
我搜索了文档,但我能找到的与链接相关的唯一方法是 setShowHyperlink(showHyperlink)
最佳答案
我可以确认你的情况。在这种情况下,似乎可以从 RichTextValue
检索超链接。目的。也就是说,我认为规范已更改为使用 RichTextValue
为文本提供超链接。 .
所以作为一个示例,它假设如下。
X
的文放在单元格“A1”中。 https://www.google.com
的 URL。 . 在这种情况下,单元格没有
=HYPERLINK("https://www.google.com","X")
.用于从这种情况检索 URL 的示例脚本如下。示例脚本:
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Sheet1");
var url = sheet.getRange("A1").getRichTextValue().getLinkUrl();
console.log(url);
笔记:
url1, url2
被放入单元格“A1”,并且 url1
和 url2
与每个链接相关联。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);
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 月 13 日更新:
来自 June 12, 2020 的更新,
getLinkUrl()
的文档和 setLinkUrl(linkUrl)
被添加到官方文件中。
关于google-apps-script - 既然链接没有反射(reflect)为超链接,如何从单元格中提取链接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61787891/