getFormUrl() в электронной таблице Google возвращает URL только последней связанной формы?
У меня есть две формы, связанные с одной электронной таблицей, по одному листу для каждой формы. Когда я запускаю такой скрипт
function myFunction() {
var ss;
ss = SpreadsheetApp.getActive();
Logger.log(ss.getFormUrl());
}
Я увижу только один URL (как показывает жизнь для второй формы). Есть ли способ получить URL для всех связанных форм?
1 ответ
Эта функциональность в настоящее время отсутствует в API. Существует существующий запрос на трекер проблем для этого здесь. Пометьте эту проблему, чтобы выполнить ее.
Я знаю, что это старый вопрос, но я все же добавлю ответ, кому он может быть интересен.
Вообще говоря,
Form
связан с
Sheet
, а не
Spreadsheet
сам. Итак, один способ получить все
Spreadsheet
формы должны пройти через
Sheet
s из
Spreadsheets
, и получите URL-адрес их формы, например:
function getFormsOfSpreadsheet(spreadsheetId) {
const ss = SpreadsheetApp.openById(spreadsheetId);
const sheets = ss.getSheets();
const formsUrls = [];
for (const sheet of sheets) {
const formUrl = sheet.getFormUrl();
// getFormUrl() returns null if no form connected
if (formUrl) {
formsUrls.push(formUrl);
}
}
return formsUrls;
}
Другой возможный способ - получить все
Form
s на Диске или в
Folder
, переберите их, чтобы получить пункт назначения и сравнить его с вашим
Spreadsheet
ID, как в этом ответе