Сервис скриптов Google Docs ligne 19 при вызове openById (docIDs [i]) - PullRequest
0 голосов
/ 11 июня 2018

Я хочу объединить все файлы только в один документ, поэтому я попробовал эту функцию, и у меня возникла ошибка >>> Служба незаметна: Документы (стр. 19, в файле «Код». Как я могу это решить? Спасибо большоемного :)

function mergeGoogleDocs() {

  var folder = DriveApp.getFolderById('1Pd-7GIdm9-PdevjSUr4ZCkYEzSPYWT8U'); // set folder ID were we should look for files to merge
  var docIDs = [];
  var files = folder.getFiles();

  while (files.hasNext()){
    file = files.next();
    docIDs.push(file.getId());
  }

  Logger.log(docIDs); // check if we have some ids

  var baseDoc = DocumentApp.openById('1G0MPkr5AbgkPpUT6uG5WoJ7RKkIkP_tDWzzns31Q6bU'); // set document id of doc which will contain all merged documents
  baseDoc.getBody().clear(); // clear the whole document and start with empty page
  var body = baseDoc.getActiveSection();

  for (var i = 1; i < docIDs.length; ++i ) {
    var otherBody = DocumentApp.openById(docIDs[i]).getActiveSection();    
    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
        throw new Error("Unknown element type: "+type);
    }
  }
}

Редактировать: На самом деле это была моя ошибка, которую я не проверил до этого, в папке, где у меня была электронная таблица, поэтому я должен проверить тип документа MimeType.GOOGLE_DOCS спасибоtehhowch ^^^ и с приведенным ниже кодом у меня больше нет ошибки, но окончательный файл пуст. На самом деле с журналами просмотра у меня есть только идентификатор окончательного объединенного файла (который пуст). Так что, если у вас естьidea:)

var types = [MimeType.GOOGLE_DOCS];
  for (var t in types) {
    var files = DriveApp.getFolderById('1Pd-7GIdm9-PdevjSUr4ZCkYEzSPYWT8U').getFilesByType(types[t]);
    while (files.hasNext()) {
      var file = files.next();
      docIDs.push(file.getId());
      Logger.log('File id  ' + file.getId()); 
    }
  }

Окончательное редактирование: код работает! Причина, по которой файл был пуст, была в том, что я загрузил текстовые документы со своего компьютера, а не из Google Docs.:)

...