我想将不同文档中的多个段落放在文档中的占位符处。
最终文档中的占位符是"占位符";{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()
- 为了实现你的目标,我想提出以下流程。
- 从
docTempBody
检索所有段落 - 检索
{plc}
的子索引 - 卸下
{plc}
- 插入段落
- 从
当您的脚本被修改时,它变成如下。
修改的脚本:
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(
- 复制((