我想将不同文档中的多个段落放在文档中的占位符处



我想将不同文档中的多个段落放在文档中的占位符处。

最终文档中的占位符是"占位符";{plc}";。

我试过这个:

var docNew = DocumentApp.openById(docNewID);
var docNewBody = docNew.getBody();
var docTempBody = DocumentApp.openById(docTempID).getBody();
var docTempPars = docTempBody.getParagraphs();
var range = docNewBody.findText("{plc}").getElement().getParent().getChildIndex();
docTempPars.forEach(function(p2){
docNewBody.insertParagraph(range, p2);
var range = range + 1;
})

但没有添加任何内容。有人能帮忙吗?

我相信你的目标如下。

  • 您希望使用GoogleAppsScript将docNewBody中的{plc}替换为docTempBody的所有段落
  • 根据您的脚本,文档中只有一个{plc}

修改点:

  • getChildIndex(child)具有child的自变量。
    • 在这种情况下,我认为var range = docNewBody.findText("{plc}").getElement().getParent().getChildIndex();发生了错误
  • 在脚本中,{plc}不会被删除
  • 插入段落时,请使用copy()
  • 为了实现你的目标,我想提出以下流程。
    1. docTempBody检索所有段落
    2. 检索{plc}的子索引
    3. 卸下{plc}
    4. 插入段落

当您的脚本被修改时,它变成如下。

修改的脚本:

function myFunction() {
var docNew = DocumentApp.openById(docNewID);
var docNewBody = docNew.getBody();

// 1. Retrieve all paragraphs from `docTempBody`.
var docTempBody = DocumentApp.openById(docTempID).getBody();
var docTempPars = docTempBody.getParagraphs();
console.log(docTempPars.length)
// 2. Retrieve the child index of `{plc}`.
var element = docNewBody.findText("{plc}").getElement().getParent();
var range = docNewBody.getChildIndex(element);
// 3. Remove `{plc}`.
element.removeFromParent();

// 4. Insert the paragraphs.
docTempPars.forEach(function(p2){
docNewBody.insertParagraph(range++, p2.copy());
});
}

参考文献:

  • getChildIndex(child(
  • 复制((

相关内容

  • 没有找到相关文章

最新更新