gpt4 book ai didi

google-apps-script - 将自定义属性添加到 google doc 文本

转载 作者:行者123 更新时间:2023-12-03 22:33:39 26 4
gpt4 key购买 nike

我需要创建一个谷歌应用程序脚本,它将在事件文档中插入一些字符串。
我需要稍后知道用户是否使用了文档上的脚本并更改了已插入的文本。

是否可以为我添加的字符串标记或插入自定义属性/属性?

例如,而不是添加

<b>Custom Text</b>

可以插入这个吗?
<p CustomAttribute=Cust1>Custom Text</p>

另外,如何在文档中搜索我的自定义属性?

最佳答案

您可以使用 NamedRanges 实现这种效果。 .基本上,该策略是:

  • 添加您的文本、段落或其他文档元素
  • 将该文本包装在文档中 NamedRange
  • 记录 NamedRange ID,并将其与您需要附加到该特定文本的任何其他数据相关联(例如插入时间或自定义属性,或其他任何数据)。
  • 稍后,当您需要查找该文本(或只是确定它是否存在)时,您可以查询您的 NamedRange ID 列表,然后使用该 ID 引用文档中的文本。

  • 这是此类策略的粗略实现:
    function testing() {
    // Add a new paragraph within a Named Range
    var named = addTextWithNamedRange('This is my added text', 'RangeLabel01');

    // NamedRanges can share the same names, but the IDs are unique,
    // so use IDs to easily reference specific NamedRanges
    var namedId = named.getId();

    // Now save this ID to a data structure, along with any other information
    // about it you need to record

    // Later, when you need to reference that text/paragraph/element,
    // use the ID to find it, and make any changes you need:
    accessNamedRange(namedId);
    }

    function addTextWithNamedRange(str, name) {
    // Add a new paragraph to end of doc
    var doc = DocumentApp.getActiveDocument();
    var body = doc.getBody();
    var text = body.appendParagraph(str);

    // Creates a NamedRange that includes the new paragraph
    // Return the created Named Range
    var rangeBuilder = doc.newRange();
    rangeBuilder.addElement(text);
    return doc.addNamedRange(name, rangeBuilder.build());
    }


    function accessNamedRange(rangeId) {
    // Determine if a NamedRange with this ID exists
    // If it does, log information about it and the Paragraph
    // elements it includes
    var doc = DocumentApp.getActiveDocument();
    var named = doc.getNamedRangeById(rangeId);
    if (named) {
    var rangeElements = named.getRange().getRangeElements();
    for(var r in rangeElements) {
    var text = rangeElements[r].getElement().asParagraph().getText();

    // Just logging here, but could potentially edit or
    // otherwise manipulate the text
    Logger.log('Found NamedRange ' + named.getName() +
    ' (id='+rangeId+') --> ' + text);
    }
    }
    }

    关于google-apps-script - 将自定义属性添加到 google doc 文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26032362/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com