#google-apps-script #google-apps
#google-приложения-скрипт #google-приложения
Вопрос:
Я работаю с «новой» версией Google SS.
Я хотел бы получить форму, прикрепленную к электронной таблице, в которой я нахожусь, вот так:
function findFormURL() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
return ss.getFormUrl();
}
Однако в новой версии эта функция пока не работает.
В любом случае, он выдает URL-адрес формы, что интересно, но я хотел бы иметь идентификатор формы или объект, чтобы затем я мог работать с ним, изменять некоторые вещи и т. Д. Возможно ли это ?
Ответ №1:
Это действительно раздражает, но есть возможный способ обойти эту недостающую функцию, используя возможности поиска дисков… Я протестировал его с помощью приведенного ниже кода, и он сработал.
Я согласен, что это далеко от идеала и требует наличия формы с тем же уникальным именем, что и у вашей электронной таблицы, но это лучше, чем ничего.
function getFormTest() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var nameToSearch = ss.getName();
Logger.log('title contains "' nameToSearch '"');
var forms = DriveApp.searchFiles('title contains "' nameToSearch '"');
while (forms.hasNext()){
var formDoc = forms.next();
Logger.log(formDoc.getMimeType());
if(formDoc.getMimeType()=='application/vnd.google-apps.form'){
break;
}
}
Logger.log('formDoc = ' formDoc);
var form = FormApp.openById(formDoc.getId());
var items = form.getItems();
for(var i in items){
Logger.log(items[i].getTitle() ' ' items[i].getType());
}
}
Комментарии:
1. это может сработать, на самом деле у моей формы и ss должно быть одно и то же имя. Я попробую это сделать завтра.