Google 脚本选择文档中的部分文本

问题描述 投票:0回答:1

我的目标是构建一个选择带下划线的空白的系统,到目前为止,我有一个系统将光标移动到带下划线部分的开头并突出显示它

我是使用 Google Apps 脚本的新手,并且在尝试以编程方式仅选择段落的一部分时遇到了困难。我已经弄清楚如何选择整个段落以及如何将光标移动到段落中的特定位置,但我不知道如何仅选择段落的一部分; 部分突出显示的文本

我尝试过使用

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

有没有办法选择段落中起点和终点之间的文本?

google-apps-script google-docs
1个回答
5
投票

我相信您的目标如下。

  • Is there a way to select text in a paragraph between a start point and and end point?
    开始,您想要使用 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.
,我认为您的脚本中出现错误,因为没有包含范围。在这种情况下,需要包含范围。

示例脚本如下。在本例中,使用 RangeBuilder 类的 addElementsBetween(startTextElement, startOffset, endTextElementInclusive, endOffsetInclusive) 方法选择段落中的部分文本。

示例脚本:

请将以下脚本复制并粘贴到 Google 文档的脚本编辑器中。并且,请设置

start
end
。在此示例脚本中,使用脚本选择了第 1 段中的部分文本。

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);
}

测试:

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

来自:

enter image description here

致:

enter image description here

注:

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

参考资料:

© www.soinside.com 2019 - 2024. All rights reserved.