📜  单元格应用程序脚本中的 RichText URL (1)

📅  最后修改于: 2023-12-03 15:07:20.572000             🧑  作者: Mango

单元格应用程序脚本中的 RichText URL

在单元格应用程序脚本中,我们可以通过 RichText URL 功能,实现在单元格内添加链接跳转。下面来介绍一下该功能的使用方法。

使用方法
1. 设置单元格文本

首先,我们需要设置单元格文本。在设置文本时,需要使用到富文本格式。

// 假设我们要设置的文本为 "点击跳转"
var richTextValue = SpreadsheetApp.newRichTextValue()
    .setText("点击")
    .setText("跳转")
    .build();

// 将文本设置到单元格 A1 中
var sheet = SpreadsheetApp.getActiveSheet();
sheet.getRange("A1").setRichTextValue(richTextValue);
2. 添加链接

在设置文本时,我们可以使用 .setLinkUrl(url) 方法来为其中的某个文本添加链接。

// 假设我们要为文本 "跳转" 添加链接
var richTextValue = SpreadsheetApp.newRichTextValue()
    .setText("点击")
    .setText("跳转").setLinkUrl("https://www.google.com")
    .build();

// 将文本设置到单元格 A1 中
var sheet = SpreadsheetApp.getActiveSheet();
sheet.getRange("A1").setRichTextValue(richTextValue);
3. 修改链接

如果我们需要修改已有文本的链接,可以使用 .getRichTextValue().getRuns() 方法获取每一个文本,进而使用 .setLinkUrl() 方法修改链接。

// 获取单元格 A1 中的文本
var sheet = SpreadsheetApp.getActiveSheet();
var richTextValue = sheet.getRange("A1").getRichTextValue();

// 遍历文本中的每一个部分
var runs = richTextValue.getRuns();
for (var i = 0; i < runs.length; ++i) {
    var run = runs[i];

    // 如果该部分的文本为 "跳转",则将其链接修改为新链接
    if (run.getText() == "跳转") {
        run.setLinkUrl("https://www.bing.com");
    }
}

// 更新单元格中的文本
sheet.getRange("A1").setRichTextValue(richTextValue);
注意事项
  • 当在单元格文本中添加链接时,文本中的每一个部分都可以设置链接。但是,如果整个文本都设置了链接,那么它们的链接在一起的时候可能会产生问题,因为链接的终点和起点会相互干扰。因此,最好只在文本中的一些部分添加链接。

  • 如果只需要为整个单元格添加一个链接,而不是游离的链接,可以使用 .setFormula() 方法为单元格设置 HYPERLINK 公式。

相关链接