gpt4 book ai didi

google-apps-script - 我想将来自不同文档的多个段落放在文档中的占位符处

转载 作者:行者123 更新时间:2023-12-04 15:17:14 25 4
gpt4 key购买 nike

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

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

但是什么也没有添加。有人可以帮忙吗?

最佳答案

我相信你的目标如下。

  • 您想替换 {plc}docNewBodydocTempBody 的所有段落使用 Google Apps 脚本。
  • 根据你的脚本,只有一个 {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());
});
}

引用资料:

关于google-apps-script - 我想将来自不同文档的多个段落放在文档中的占位符处,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64109792/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com