2016-10-11 61 views
0

我有一个带有占位符的谷歌文档,需要使用应用程序脚本填充实际数据。例如Google文档内容:在谷歌文档中使用谷歌应用程序脚本插入段落,listitem

这是模板文本。替换此{TOKEN1}和此{TOKEN2}和 此{TOKEN3}以及使用Google Apps脚本。

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

这是模板文本。使用Google Apps脚本替换此FOO1和此BAR1和此FUN1为 。

这是模板文本。使用Google Apps脚本替换此FOO2和此BAR2和此FUN2

这是模板文本。使用Google Apps脚本替换此FOO3和此BAR3和此FUN3

您可以让我知道Apps脚本方法来实现此功能吗?

+0

做出一个有效的问题显示你的编码尝试和什么不工作。到目前为止它只是一个规范。 –

回答

0

我是能够实现如下的要求:通过在文档和程序段的所有元素

  1. 迭代:

    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); 
        } 
    } 
    
  2. 收集所有从段落文本

    令牌
  3. 删除文档中的段落,因为我们不需要最终文档中的模板段落

  4. 制作的模板段的分离副本

  5. 在分离副本

整体更换令牌,功能看起来如下:

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); 
    } 
} 
相关问题