Google 脚本 Select 文档中的部分文本

Google Script Select Partial Text in Docs

我的目标是构建一个系统,其中 select 的空格已加下划线,到目前为止,我的系统 moves the cursor to the start of the underlined section and highlights it.

我刚开始使用 Google 的 Apps 脚本,在尝试以编程方式 select 仅段落的一部分时遇到了困难。我已经弄清楚如何 select 整个段落以及如何将光标移动到段落中的特定位置,但我不知道如何只 select 段落的一部分; partially highlighted text.

我试过使用 var range = DocumentApp.getActiveDocument().newRange();DocumentApp.getActiveDocument().setSelection(range.build());,但它们只 select 整个段落,而不是其中的一小部分。

有没有办法在起点和终点之间 select 段落中的文字?

我相信你的目标如下。

  • 来自 Is there a way to select text in a paragraph between a start point and and end point?,您想要 select 使用 Google Apps 脚本 Google 文档中的部分文本。

关于I've tried using var range = DocumentApp.getActiveDocument().newRange(); and DocumentApp.getActiveDocument().setSelection(range.build());, but they only select entire paragraphs, not small portions of them.,我认为在你的脚本中出现了一个错误,因为没有包含范围。在这种情况下,需要包括范围。

示例脚本如下。在这种情况下,使用 Class RangeBuilder.select 的 addElementsBetween(startTextElement, startOffset, endTextElementInclusive, endOffsetInclusive) 方法 selected 了一段文本的一部分。

示例脚本:

请将以下脚本复制并粘贴到 Google 文档的脚本编辑器中。并且,请设置 startend。在此示例脚本中,第 1 段中的部分文本是 select 使用脚本编辑的。

function myFunction() {
  const start = 8; // Please set the start offset.
  const end = 14; // Please set the end offset.

  const doc = DocumentApp.getActiveDocument();
  const paragraph = doc.getBody().getParagraphs()[0]; // As a sample, the 1st paragraph is used.
  const text = paragraph.editAsText();
  const range = doc.newRange().addElementsBetween(text, start, text, end).build();
  doc.setSelection(range);
}

测试:

使用该脚本时,得到如下结果。

发件人:

收件人:

注:

  • 这是一个简单的示例脚本。所以,请根据您的实际情况进行修改。

参考文献: