Google Apps 脚本使用 replaceText() 使文本成为可点击的 URL

Posted

技术标签:

【中文标题】Google Apps 脚本使用 replaceText() 使文本成为可点击的 URL【英文标题】:Google Apps Script Make text a clickable URL using replaceText() 【发布时间】:2014-02-08 07:30:08 【问题描述】:

我有这段代码可以打开文件并使用 replaceText 替换字符串。

var url = 'http://www.test.com';
var doc = DocumentApp.openById(file.getId());
doc.replaceText("<<urlGoesHere>>", url);
doc.saveAndClose();

当我打开文档时,发生了替换,但 url 不是可点击的超链接,它只是静态文本。有没有办法以编程方式使其成为可点击的链接?

我找到了这种名为 setLinkUrl 的文本方法,但没有文档/示例:https://developers.google.com/apps-script/reference/document/text#setLinkUrl(String)

有什么想法吗?

【问题讨论】:

是的......这是一个常见的模式,我真的希望他们能修复。 我找到了至少一百种方法,几乎​​没有文档。 【参考方案1】:

这是怎么回事,至少如果您只出现一次 url placeHolder。

如果您有多个文档,则应迭代整个文档内容以找到每个文档并将它们全部替换。

function myFunction() 
  var url = 'http://www.google.com';
  var doc = DocumentApp.getActiveDocument();// or DocumentApp.openById(file.getId()); as in your example code
  var element = doc.getBody().findText("<<urlGoesHere>>");
  if(element) // if found a match
    var start = element.getStartOffset();
    var text = element.getElement().asText();
    text.replaceText("<<urlGoesHere>>",url);
    text.setLinkUrl(start, start+url.length, url);
    doc.saveAndClose();
   // else do nothing

【讨论】:

这行得通,谢谢!我没有足够的声誉来投票。另外,像往常一样,感谢您对 Google Apps 脚本社区的贡献。我经常在您的回复中找到很多问题的答案。

以上是关于Google Apps 脚本使用 replaceText() 使文本成为可点击的 URL的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Google Apps 脚本执行 API + Java 创建 Google 表单?

使用Google Apps脚本Web应用添加到Google表格

text 使用Google Apps脚本创建Google表格的自动计划备份副本

使用Google Apps脚本删除Google表格中的行

使用 Google Apps 脚本配置 OAuth

外部编辑器支持Google Apps脚本