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

Google apps script 我想将不同文档中的多个段落放置在文档中的占位符处,google-apps-script,Google Apps Script,我想将不同文档中的多个段落放置在文档中的占位符处 最终文档中的占位符为“{plc}” 我试过这个: var docNew = DocumentApp.openById(docNewID); var docNewBody = docNew.getBody(); var docTempBody = DocumentApp.openById(docTempID).getBody(); var docTempPars = docTempBody.getParagraphs();

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

最终文档中的占位符为“{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;
    })

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

我相信你的目标如下

  • 您想使用谷歌应用程序脚本将
    docNewBody
    中的
    {plc}
    替换为
    doctembody
    的所有段落
  • 从脚本中,文档中只有一个
    {plc}
修改点:
  • getChildIndex(child)
    的参数为
    child
    • 在本例中,我认为在
      var range=docNewBody.findText(“{plc}”).getElement().getParent().getChildIndex()处会发生错误
  • 在脚本中,
    {plc}
    未被删除
  • 插入段落时,请使用
    copy()
  • 为了实现您的目标,我想提出以下流程。
  • docTempBody
    检索所有段落
  • 检索
    {plc}
    的子索引
  • 删除
    {plc}
  • 插入段落
当您的脚本被修改时,它将变成如下所示

修改脚本: 参考资料:

不幸的是,它似乎不起作用-删除了{plc},但没有任何东西被替换。“你知道会出什么问题吗?”班德瓦格纳感谢你的回答。给您带来不便,我深表歉意。不幸的是,我无法复制您的
情况,不幸的是它似乎不起作用-删除了{plc},但没有任何内容被替换。
。这是因为我的技术差。对此我深表歉意。我认为在这种情况下,需要了解你的情况。因此,为了正确了解您目前的情况,您能否提供
docNewID
docTempID
的谷歌文档样本,以复制您的问题?通过这一点,我想确认一下。这个怎么样?@bandwagoner在我的回答中,来自
我想将不同文档中的多个段落放在文档中的占位符处。
var docTempPars=docTempBody.getPages()
,我了解到
doctempars
是文本数据的段落。如果这种理解是不正确的,我认为需要确认示例Google文档。因为当我使用文本数据的段落测试这个修改后的脚本时,我可以确认段落被替换为
{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());
  });
}