Запустить скрипт Google DocumentApp при редактировании SpreadsheetApp - PullRequest
1 голос
/ 21 января 2020

Используя скрипт Google Apps, есть ли способ автоматически обновлять файл Документов Google при каждом редактировании файла Google Sheets?

У меня есть файл Google DocumentApp с скрипт, который получает данные из файла Google SpreadsheetApp. Я пытаюсь создать сценарий для автоматического обновления файла DocumentApp при каждом редактировании файла SpreadsheetApp.

Это код, который я использую в настоящее время:

function updateDocumentOnEditTrigger() {
  var ss = SpreadsheetApp.openById(SheetID);
  ScriptApp.newTrigger('UpdateDocument')
      .forSpreadsheet(ss)
      .onEdit()
      .create();
}

Запуск updateDocumentOnEditTrigger Функция, похоже, не вызывает функцию UpdateDocument, которая работает так, как должна при запуске вручную.

1 Ответ

2 голосов
/ 21 января 2020

Ответ:

Для запуска сценария DocumentApp при редактировании электронной таблицы необходимо использовать устанавливаемый триггер On edit, прикрепленный к электронной таблице.

Дополнительная информация:

Согласно документации по простым триггерам, существуют некоторые ограничения, которые необходимо учитывать. В частности:

Они могут изменить файл, к которому они привязаны, но не могут получить доступ к другим файлам, поскольку для этого потребуется авторизация.

В результате onEdit(e) Функция триггера не может быть использована. Тем не менее, существует устанавливаемый триггер, который можно создать с настройками, настроенными так, чтобы он мог срабатывать при редактировании.

Код:

С помощью следующей функции в сценарии, связанной с файлом электронной таблицы:

function updateDocument() {
  var doc = DocumentApp.openById('DOCUMENT_ID');
  // here you can put your code that edits the document in the way you want.
}

Вы можете создать устанавливаемый триггер, который запускается при редактировании электронной таблицы. Однако вам нужно будет выполнить код хотя бы один раз перед настройкой триггера - это потому, что DocumentApp требуется авторизация и вам необходимо предоставить его!

Настройка устанавливаемого триггера:

С установленным кодом вы можете создать устанавливаемый триггер, выполнив следующие шаги:

В представлении редактора сценариев приложений для связанного сценария электронной таблицы следуйте по пути Edit > Current project's triggers. Это откроет триггеры для проекта в новой вкладке или окне.

В левом нижнем углу нажмите кнопку + Add Trigger, чтобы вызвать модальный Add Trigger. Отсюда установите триггер со следующими свойствами:

  • Выберите, какую функцию запускать: updateDocument
  • Выберите, какое развертывание должно выполняться: Head
  • Выберите источник события: From spreadsheet
  • Выберите тип события: On edit

И нажмите Save. Это настроит триггер таким образом, что функция редактирования документа будет запускаться при каждом редактировании электронной таблицы.

Надеюсь, это будет полезно для вас!

Ссылки:

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