Google apps script 我想将不同文档中的多个段落放置在文档中的占位符处
我想将不同文档中的多个段落放置在文档中的占位符处 最终文档中的占位符为“{plc}” 我试过这个: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();
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},但没有任何内容被替换。
。这是因为我的技术差。对此我深表歉意。我认为在这种情况下,需要了解你的情况。因此,为了正确了解您目前的情况,您能否提供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());
});
}