首页 文章

使用谷歌应用脚本在谷歌文档中插入段落,listitem

提问于
浏览
0

我有一个带有占位符的google doc,需要使用Apps Script填充实际数据 . 例如Google文档内容:

这是模板文本 . 使用Google Apps脚本替换此和此以及此 .

要求是替换令牌并多次重复此段落 . 每次更换段落时,都需要在段落中放置一组不同的值 . 格式不应该被打破,在这种情况下,标记是粗体,因此值也应该是粗体,如下所示:

这是模板文本 . 使用Google Apps脚本替换此FOO1和此BAR1以及此FUN1 . 这是模板文本 . 使用Google Apps脚本替换此FOO2和此BAR2以及此FUN2 . 这是模板文本 . 使用Google Apps脚本替换此FOO3和此BAR3以及此FUN3 .

你能让我知道Apps脚本方法来实现这个功能吗?

1 回答

  • 0

    我能够达到以下要求:

    • 遍历文档中的所有元素并处理段落:
    var elementCount = body.getNumChildren();
    for(var i = 0; i < elementCount; i++) {
      var child = body.getChild(i);
      if(child.getType() === DocumentApp.ElementType.PARAGRAPH) {
        replaceTokensInParagraph(element.asParagraph(), i);
      }  
    }
    
    • 从段落文本中收集所有标记

    • 从文档中删除段落,因为我们不需要最终文档中的模板化段落

    • 制作模板化段落的分离副本

    • 替换分离副本中的标记

    总的来说,该功能如下所示:

    var replaceTokensInParagraph = function(paragraph, paragraphIndex) {
      paragraph.removeFromParent();
      var tokens = ....;
      for(int i=0; i<tokens.length; i++) {
         var paragraphCopy = paragraph.copy();
         paragraphCopy.replaceText(token, <value>);
         body.insertParagraph(paragraphIndex, paragraphCopy);
      }
    }
    

相关问题