Добавление вариантов выбора для флажка в форме Google - PullRequest
1 голос
/ 17 марта 2019

Я пытаюсь добавить новые опции в флажок в формах Google. Я пытаюсь выбрать столько флажков, сколько и файлов для выбора.

function listFilesInFolder() {  
  var folderName = "Box A";
  var folder = DriveApp.getFolderById('some id');
  var contents = folder.getFiles();

  var list = []; 
  list.push(['Name','ID','Size']);

  var files = folder.getFiles(); 
  while (files.hasNext()) {
    file = files.next();
    //spread sheet info if needed
    var row = []
    row.push(file.getName(), file.getId(), file.getSize())
    list.push(row);

    var name = file.getName();
    AddToDropDown(name);
    console.log(name)
  }
}

function AddToDropDown(name) {
  var form = FormApp.openById('some id');
  var items = form.getItems();
  var ImageSelection = items[7].asCheckboxItem();
  ImageSelection.setChoices([
    ImageSelection.createChoice(ImageSelection.getChoices().toString()),
    ImageSelection.createChoice(name),
  ])    
}

Я пробовал это так же, как и

function AddToDropDown(name) {
  var form = FormApp.openById('some id');
  var items = form.getItems();
  var ImageSelection = items[7].asCheckboxItem();
  ImageSelection.createChoice(name);   
}

Кажется, ни один из них не работает. Есть мысли?

Ответы [ 2 ]

2 голосов
/ 17 марта 2019
  • Вы хотите добавить имена файлов, извлеченные из папки, в качестве флажков.
  • Вы хотите назначить каждое имя файла каждому флажку.

Если мое понимание верно,как насчет этой модификации?В этой модификации ваш сценарий был изменен.

Последовательность действий этого измененного сценария:

  1. Извлечение имен файлов и помещение их в массив.
  2. Создание объектов "Выбор"используя createChoice() с полученными именами файлов.
  3. Установите объекты "Выбор", используя setChoices().

Модифицированный скрипт:

function addfileselect() {
  var folder = DriveApp.getFolderById('1--5CnFK5DtptuO1bUu6MsA9oTknr-Fw2');
  var files = folder.getFiles();
  var names = [];
  while (files.hasNext()){
    var file = files.next();
    names.push(file.getName());
  }
  var form = FormApp.openById('1gcktQP5bKxCtAvtlgz4d9x7zI6M4koRmZkkjgefswIg');
  var items = form.getItems();
  var ImageSelection = items[7].asCheckboxItem();
  var choices = ImageSelection.getChoices();
  for (var i = 0; i < names.length; i++) {
    var choice = ImageSelection.createChoice(names[i]);
    choices.push(choice);
  }
  ImageSelection.setChoices(choices);
}

Примечание:

  • В этой модификации, если имеются существующие флажки, добавляются флажки имен файлов.Если вы хотите добавить только флажки для извлеченных имен файлов, замените var choices = ImageSelection.getChoices(); на var choices = [];.
  • . При большом количестве добавленных флажков может возникнуть ошибка.

Ссылки:

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

0 голосов
/ 17 марта 2019

Как я это решил


  var folder = DriveApp.getFolderById('1--5CnFK5DtptuO1bUu6MsA9oTknr-Fw2');
  contents = folder.getFiles();
  var list = [];

  var files = folder.getFiles();

  while (files.hasNext()){

    file = files.next();

    list.push(file.getName());

    var name = file.getName();


    //console.log(name)
  }
     AddToDropDown(list);



 }


function AddToDropDown(row) {
   console.log(row.length)
   var form = FormApp.openById('1gcktQP5bKxCtAvtlgz4d9x7zI6M4koRmZkkjgefswIg');
   var items = form.getItems();
   var ImageSelection = items[0].asCheckboxItem();   
   ImageSelection.setChoiceValues(row.sort());


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