我想编写一个 Google Docs 脚本来复制一个模板(它只包含一个容器绑定脚本)并附加用户选择的另一个文档的内容。我将如何做到这一点?我已经有了选择文件的方法(模板有一个静态 id),但想办法将文档的所有内容(包括 inlineImages 和超链接)复制到我的新文档中。
问问题
4273 次
1 回答
7
我想唯一的方法是一个接一个地复制元素……有一大堆文档元素,但不应该太难做到详尽无遗。这是最常见类型的情况,您必须添加其他类型。
(从Henrique Abreu 的答案中借用的原始代码)
function importInDoc() {
var docID = 'id of the template copy';
var baseDoc = DocumentApp.openById(docID);
var body = baseDoc.getBody();
var otherBody = DocumentApp.openById('id of source document').getBody();
var totalElements = otherBody.getNumChildren();
for( var j = 0; j < totalElements; ++j ) {
var element = otherBody.getChild(j).copy();
var type = element.getType();
if( type == DocumentApp.ElementType.PARAGRAPH )
body.appendParagraph(element);
else if( type == DocumentApp.ElementType.TABLE )
body.appendTable(element);
else if( type == DocumentApp.ElementType.LIST_ITEM )
body.appendListItem(element);
else if( type == DocumentApp.ElementType.INLINE_IMAGE )
body.appendImage(element);
// add other element types as you want
else
throw new Error("According to the doc this type couldn't appear in the body: "+type);
}
}
于 2013-10-13T20:29:34.580 回答