我有一个带有占位符的Google文档,需要使用Apps脚本填充实际数据。例如Google文档内容:
这是模板文字。将此 {TOKEN1} 和此 {TOKEN2} 替换为 此 {TOKEN3} 以及使用Google Apps脚本。
要求是替换令牌并多次重复此段落。每次更换段落时,都需要在段落中放置一组不同的值。格式不应该被打破,在这种情况下,标记以粗体显示,因此值也应该以粗体显示如下:
这是模板文字。将此 FOO1 和此 BAR1 以及此 FUN1 替换为 很好地使用Google Apps脚本。
这是模板文字。使用Google Apps脚本替换此 FOO2 和此 BAR2 以及此 FUN2 。
这是模板文字。使用Google Apps脚本替换此 FOO3 和此 BAR3 以及此 FUN3 。
您能否让我知道应用脚本方法来实现此功能?
答案 0 :(得分: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);
}
}