Google скрипт для внесения одинаковых изменений формата в несколько документов Google Drive - PullRequest
0 голосов
/ 29 сентября 2018

Я пытаюсь изменить ориентацию группы Документов Google (все они содержатся в одном файле Google Диска) с ориентации страницы по умолчанию (книжная) на альбомную.Я использую следующий код, но получаю ошибку в строке "getBody".Я подозреваю, что это потому, что этот код на самом деле не «видит» документ в процессе итерации документов, но я не знаю, как исправить эту ошибку.

Ошибка: TypeError: Невозможно вызвать метод "getBody" со значением NULL.(строка 8, файл "Код") ориентация страницы

    function loop() {
     var folder=DriveApp.getFolderById('ID');
     var files=folder.getFiles();
     while(files.hasNext()){
     var file=files.next();
     var body = doc.getBody();
     setPageOrientation(file);
    }
}
function setPageOrientation(file){
    var doc = DocumentApp.getActiveDocument();
    var body = doc.getBody();
    var pointsInInch = 72;
    body.setPageHeight(8.5 * pointsInInch);  //8.5 inches
    body.setPageWidth(11 * pointsInInch); // 11 inches
  }

Кстати, я знаю, что 2-я функция (setPageOrientation) работает, потому что я связал ее с отдельным документом Google, и она работает.

1 Ответ

0 голосов
/ 09 октября 2018

Сценарий ниже работает.Он открывает серию документов (один за другим) на моем Google Диске и просматривает каждый из них, меняя формат с книжного на альбомный.

function loop() {
  var folder = DriveApp.getFolderById('folderId');
  var files = folder.getFiles();
  while (files.hasNext()){
    var file = files.next();
    var id = file.getId();// To get FileId of the file
    var doc = DocumentApp.openById(id);// To open file object as doc
    var body = doc.getBody();
    var pointsInInch = 72;
    body.setPageHeight(8.5 * pointsInInch);  //8.5 inches
    body.setPageWidth(11 * pointsInInch); // 11 inches
  }
}
...