Например, я хотел бы написать (скажем, на Python) программу, которая генерирует лист Google, затем записывает некоторый пользовательский код .gs в скрипт приложений, прикрепленный к этому листу, а затем записывает значения в сам лист, используя формулы, определенные в Скрипт приложений. В настоящее время я использую «Инструменты»> «Редактор сценариев», а затем вручную копирую и вставляю соответствующий код сценария приложений.
Как уже упоминал @Tanaike, вы можете использовать Apps Script API , чтобы добавить скрипт, привязанный к контейнеру.
Что делать:
Чтобы установить сценарий, привязанный к контейнеру, вам необходимо назначить идентификатор файла электронной таблицы параметру parentId.
Образец тела запроса:
{
"title": "new",
"parentId": "spreadsheet file id"
}
Образец тела ответа:
{
"scriptId": "newly created script id",
"title": "new",
"parentId": "spreadsheet file id",
"createTime": "2020-12-25T23:33:48.026Z",
"updateTime": "2020-12-25T23:33:48.026Z"
}
Образец тела запроса:
{
files: [{
name: 'hello',
type: 'SERVER_JS',
source: 'function helloWorld() {\n console.info("Hello, world!");\n}'
}, {
name: 'appsscript',
type: 'JSON',
source: "{\"timeZone\":\"America/New_York\",\"" +
"exceptionLogging\":\"CLOUD\"}"
}]
}
scriptId можно увидеть в вашем автономном проекте сценария в разделе «Файл» -> «Свойства проекта».
Чтобы установить сценарий, привязанный к контейнеру, вам необходимо назначить идентификатор файла электронной таблицы параметру parentId.
Образец тела запроса:
{
"title": "new",
"parentId": "spreadsheet file id"
}
Образец тела ответа:
{
"scriptId": "newly created script id",
"title": "new",
"parentId": "spreadsheet file id",
"createTime": "2020-12-25T23:33:48.026Z",
"updateTime": "2020-12-25T23:33:48.026Z"
}
Используйте ресурс контента , возвращенный на шаге 2, в качестве тела запроса. Обязательно замените идентификатор сценария на основе вновь созданного связанного идентификатора сценария, полученного на шаге 4.
Пример автономного скрипта:
Пример результата обходного пути:
Теперь вы можете использовать пользовательскую функцию в Google Таблицах.
К сожалению, Sheets API не может управлять скриптом Google Apps в электронной таблице. В таком случае, как насчет использования Apps Script API? Реф