Скрипт Google Docs для вставки другого документа - PullRequest
0 голосов
/ 22 февраля 2019

Я хочу использовать пользовательское меню для вставки еще одного документа целиком.

Идея состоит в том, что я создал набор документов Google с настраиваемыми таблицами в каждой, а затем из меню пользователь может просто запуститьСкрипт для вставки таблицы / шаблона.

Создать меню легко (.createMenu) и добавлять пункты меню я могу.Но как тогда создать скрипт, который копирует весь другой документ Google (на основе doc.id) и вставляет его в мой текущий документ?

1 Ответ

0 голосов
/ 22 февраля 2019

Вы можете сделать это, получив Тело одного документа и добавив его дочерние элементы к текущему документу.

function appendTemplate(templateID) {

  var thisDoc = DocumentApp.getActiveDocument();
  var thisBody = thisDoc.getBody();

  var templateDoc = DocumentApp.openById(templateID); //Pass in id of doc to be used as a template.
  var templateBody = templateDoc.getBody();

  for(var i=0; i<templateBody.getNumChildren();i++){ //run through the elements of the template doc's Body.
    switch (templateBody.getChild(i).getType()) { //Deal with the various types of Elements we will encounter and append.
      case DocumentApp.ElementType.PARAGRAPH:
        thisBody.appendParagraph(templateBody.getChild(i).copy());
        break;
      case DocumentApp.ElementType.LIST_ITEM:
        thisBody.appendListItem(templateBody.getChild(i).copy());
        break;
      case DocumentApp.ElementType.TABLE:
        thisBody.appendTable(templateBody.getChild(i).copy());
        break;
    }
  }

  return thisDoc;
}

Если вы хотите узнать больше о структуреобъект Body, я написал длинный ответ здесь .В основном это касается выборов, но вся информация применима.

...