Создать форму Google из листа Google - PullRequest
0 голосов
/ 30 апреля 2020

Я сделал следующий код.

    /**
 * Creates a Google Form de um arquivo do Google Sheet, publica o formulário e manda o link para o seu e-mail.
 */
function createAndSendForm() {
  var spreadsheet = SpreadsheetApp.getActive();
  var sheet = spreadsheet.getActiveSheet();
  var nomeSheet = SpreadsheetApp.getActive().getName();
  var nomePlanilha = SpreadsheetApp.getActiveSheet().getName();
  var form = FormApp.create('2020' + nomeSheet);
  // This represents ALL the data
  var inicio = 4; // pegar da planilha
  var range = sheet.getDataRange();
  var qColunas = 6;
  var values = range.getValues();
  var nPerguntas = 14; // pegar da planilha

  for (var i = inicio; i < nPerguntas; i++) {
   var tituloPergunta = values[i][0]; // range.getValues()
   var item = form.addCheckboxItem();
   item.setTitle(tituloPergunta);
   Logger.log(tituloPergunta);

  for (var j = 1; j < values[i].length; j++) {
     var alternativa = values[i][j];
     Logger.log(alternativa);
     item.getChoices().push(item.createChoice(alternativa))
    }
    }
}

В коде есть интеграция записи в виде вопросов при планировании и помещения их в форму, вопрос, который я хочу, является множественной альтернативой. Данные находятся в ячейках A4F14. В столбце А есть вопросы, В начинаются как альтернативы и заканчиваются на F. Все варианты находятся в одинаковом количестве, то есть 5 альтернатив. Но мой код не создает форму, он задает вопрос, но не представляет собой альтернативы. кто-нибудь может мне помочь?

1 Ответ

0 голосов
/ 30 апреля 2020

Вы можете сделать это с помощью map () :

 for (var i = inicio; i < nPerguntas; i++) {
    var tituloPergunta = values[i][0];
    var item = form.addCheckboxItem();
    item.setTitle(tituloPergunta);
    values[i].shift();
    item.setChoices(values[i].map(function (choice) {
      return item.createChoice(choice);
    }));
  }
...