Reputation: 89
I would like to create a MCQ from an existing spreadsheet that has this type of data :
Question Choice 1 (correct answer) Choice 2 Choice 3 Choice 4
Question 1 a b c d
Question 2 d a b c
Question 3 b a b c
Thank you for your answer Chris, but this code :
function createForm(){
var form = FormApp.create('New Form');
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheets()[0];
var range = sheet.getRange(2, 1, sheet.getLastRow());
var values = range.getValues();
for (var i = 0; i < values.length; i++) {
form.addMultipleChoiceItem()
.setTitle(values[i][1])
.setChoiceValues([values[i][2],values[i][3],values[i][4]]); //Make another loop here if your Answers counts are different
}
}
displays unfilled questions, something like this : Form1 But what I would like to create should look like this at the end : Form2
Upvotes: 0
Views: 909
Reputation: 89
Here what i have came out as a soultion :
function createForm(){
var form = FormApp.create('New Form');
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheets()[0];
var range = sheet.getRange(2, 1, sheet.getLastRow());
var values = range.getValues();
var ansRange1 = sheet.getRange(2, 2, sheet.getLastRow());
var ansValues1 = ansRange1.getValues();
var ansRange2 = sheet.getRange(2, 3, sheet.getLastRow());
var ansValues2 = ansRange2.getValues();
var ansRange3 = sheet.getRange(2, 4, sheet.getLastRow());
var ansValues3 = ansRange3.getValues();
var ansRange4 = sheet.getRange(2, 5, sheet.getLastRow());
var ansValues4 = ansRange4.getValues();
for (var i = 0; i < (values.length)-1; i++) {
form.addMultipleChoiceItem()
.setTitle(values[i])
.setChoiceValues([ansValues1[i],ansValues2[i],ansValues3[i], ansValues4[i] ]); //Make another loop here if your Answers counts are different
}
}
But I'm still strugling how to make a correct answer and to give a number of point to the correct answer : without having to these two steps manually from forms. So if someone can help me figure that out he is more than welcome!
Upvotes: 0
Reputation: 1293
https://developers.google.com/apps-script/reference/forms/
var form = FormApp.create('New Form');
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheets()[0];
var range = sheet.getRange(2, 1, sheet.getLastRow());
var values = range.getValues();
for (var i = 0; i < values.length; i++) {
form.addMultipleChoiceItem()
.setTitle(values[i][1])
.setChoiceValues([values[i][2],values[i][3],values[i][4]]); //Make another loop here if your Answers counts are different
}
Upvotes: 1