Как изменить существующий элемент формы Google с помощью скрипта Google Apps при первоначальной загрузке формы - PullRequest
1 голос
/ 14 октября 2019

У меня есть существующая форма Google, которая создается вручную, т.е. путем добавления элементов формы с помощью графического интерфейса. Существует раскрывающееся поле под названием «Идентификационный номер члена команды», как показано ниже.

enter image description here

Мне нужно вытащить эти идентификаторы членов команды из электронной таблицы при загрузке формы.

Я знаю, как извлечь данные из электронной таблицы, используя скрипт Google Apps. Я просто не знаю, как я могу внести какие-либо изменения в существующее поле формы Google, используя Apps Script. Я хочу отобразить эти идентификаторы, приходящие извне (таблицы), в этом раскрывающемся списке. Есть идеи, как мне это сделать?

Ответы [ 2 ]

1 голос
/ 15 октября 2019

Вы можете сделать это с помощью скрипта приложений и триггера.

Вот функция, которая выполняет создание вопроса:

function populateQuestionWithSheetsData() {
  var form = FormApp.getActiveForm();
  var questions = form.getItems();
  for (var i=0; i<questions.length; i++) {
    if (questions[i].getTitle()=="Dynamic Question Title") { //You can replace this if you know the ID of the question you want to change
      var list = questions[i].asListItem();
      var sheetsData = SpreadsheetApp.openByUrl("YOUR SHEETS URL").getSheets()[0].getDataRange().getValues();
      var choices = [];
      for (var j=1; j<sheetsData.length; j++) { //Starts on 1 to ignore first row (with column name ID)
        choices.push(list.createChoice(sheetsData[j][0]));
      }      
      list.setChoices(choices); //Overrides the question choices with the array of choices we just populated.
    }
  }
}

Затем просто создайте новый триггер, который происходит onOpen().

Надеюсь, это поможет!

0 голосов
/ 15 октября 2019

Спасибо за ваш ответ @ZektorH. Это сработало. Но я не использовал onOpen, потому что это позволило бы только владельцу формы иметь этот список. Вместо этого я использовал отправку формы On (режим просмотра).

Еще раз спасибо за вашу помощь.

enter image description here

enter image description here

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