Почему есть SpreadsheetApp.функция open (), но не DocumentApp.open ()? - PullRequest
0 голосов
/ 08 октября 2018

Когда я тестирую этот скрипт,

function loop() {
    var folder = DriveApp.getFolderById('actualIDhere');
    var files = folder.getFiles();
    while(files.hasNext()){
        var doc = DocumentApp.open(files.next());
        ...
    }
}

Я получаю эту ошибку:

TypeError: Не удается найти функцию, открытую в объекте DocumentApp.(строка 5, файл "Код")

Может показаться, что аналог электронной таблицы приложений Google (откуда я его взял) (см. здесь: https://developers.google.com/apps-script/reference/spreadsheet/spreadsheet-app)

// Get any starred spreadsheets from Google Drive, then open the spreadsheets
// and log the name of the first sheet within each spreadsheet.

var files = DriveApp.searchFiles('starred = true and mimeType = "' + MimeType.GOOGLE_SHEETS + '"');
while (files.hasNext()) {
    var spreadsheet = SpreadsheetApp.open(files.next());
    var sheet = spreadsheet.getSheets()[0];
    Logger.log(sheet.getName());
}

Любые идеи, почему это не удается и какой код заменить его?

Ответы [ 2 ]

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

Доступные методы для DocumentApp перечислены в https://developers.google.com/apps-script/reference/document/document-app.

Не существует метода open, но есть два способа открыть документ:

  • openById(id)
  • openByUrl(url)

Поскольку files.next() возвращает Файл объект, который имеет методы:

  • getId()
  • getUrl()

Вам решать, какой метод DocumentApp использовать.

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

думаю, что:

var doc = DocumentApp.open(files.next());

должно быть скорее:

var doc = DocumentApp.openById(files.next().getId());

, потому что fileId является ожидаемым параметром там.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...