Добавьте вопрос Google Form в определенный раздел формы с помощью Google Apps Script

#google-apps-script #google-forms

#google-apps-script #google-forms

Вопрос:

Приносим извинения, если на этот вопрос был дан ответ ранее, но я провел обширные исследования и не нашел ответа.

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

Я знаю, как добавить новый вопрос,

 form.addTextItem();
  

но при этом он добавляется в конец формы.

Я также знаю, как получить список разделов,

 var sections = form.getItems(FormApp.ItemType.PAGE_BREAK);
var section = sections[0];
  

Но я не смог найти способ добавить вопрос в определенный раздел, например,

 section.addTextItem();
  

Я не уверен, что это просто невозможно или я упускаю что-то очень простое, но я удивлен, что ни у кого больше не возникало этой проблемы до сих пор.

Будем признательны за любую помощь

С уважением,

Ответ №1:

  • Вы хотите добавить новый элемент в определенный раздел.

К сожалению, не существует методов прямого добавления нового элемента в определенный раздел. Итак, как насчет этого обходного пути? В этом обходном пути используется следующий поток.

  1. Введите индекс раздела, в который вы хотите добавить новый элемент.
  2. Создайте новый элемент.
    • На этом этапе элемент добавляется в последний индекс последнего раздела.
  3. Извлеките все разделы.
  4. Извлеките индекс разделов.
    • Граница раздела может быть известна как PAGE_BREAK .
  5. Переместите созданный элемент в индекс введенного раздела с помощью метода MoveItem.

С помощью этого процесса можно добавить новый элемент в определенный раздел.

Пример сценария:

 var sectionIndex= 1; // Please set the index you want to insert.

var form = FormApp.getActiveForm();

var newItem = form.addTextItem().setTitle("New sample item").getIndex(); // New sample item

var items = form.getItems(FormApp.ItemType.PAGE_BREAK);
var sections = [0];
for (var i = 0; i < items.length; i  ) {
  sections.push(items[i].getIndex());
}
var insertIndex = sections[sectionIndex   1] || null;
if (insertIndex) {
  form.moveItem(newItem, insertIndex);
}
  

Примечание:

  • В этом примере скрипта началом sectionIndex является 0 .
    • Например, когда sectionIndex есть 1 , созданный элемент добавляется во 2-й раздел.
  • Это пример сценария. Поэтому, пожалуйста, измените его в соответствии с вашей ситуацией.

Ссылки:

Если это был не тот результат, который вы хотели, я приношу извинения.