//Create new form - Global variable so it
can be seen by all functions
const FORM =
FormApp.create("Questionnaire");
function makeQuestionnaire() {
//Get data and last row from spreadsheet
 
const sh =
SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Sheet1");
 
const data = sh.getDataRange().getValues();
  
//Loop through each question and check what
question type it is
 
data.forEach(checkQuestionType)  
}
//function to check question type
function checkQuestionType(data){
 
if(data[1] === "text"){ 
   
makeTextQ(data);
  }
 
else if(data[1] === "date"){ 
   
makeDateQ(data);
  }
 
else if(data[1] === "duration"){  
   
makeDurationQ(data);
  }
 
else if(data[1] === "multiplec"){  
   
makeMultipleCQ(data);
  }
 
else if(data[1] === "list"){ 
   
makeListQ(data);
  }
 
else if(data[1] === "scale"){ 
   
makeScaleQ(data);
  }
 
else if(data[1] === "checkbox"){  
   
makeCheckboxQ(data);
  }
 
else if(data[1] === "grid"){ 
   
makeGridQ(data);
  } 
 
else if(data[1] === "paragraph"){  
   
makeParagraphQ(data);
  }
}
////Functions to make different types of
questions
//Make text question
function makeTextQ(data){
  let
text = data[2];
  let
item = FORM.addTextItem();
 
item.setTitle(text);
}
//Make date question
function makeDateQ(data){
  let
date = data[2];
  let
item = FORM.addDateItem();
 
item.setTitle(date);
 
item.setRequired(true);
}
//make duration question
function makeDurationQ(data){
  let
duration = data[2];
  let
item = FORM.addDurationItem();
 
item.setTitle(duration);
}
//make Multiple-Choice question
function makeMultipleCQ(data){
  let
mcQuestion = data[2];
  let
item = FORM.addMultipleChoiceItem();
 
item.setTitle(mcQuestion);
Logger.log(data);
 
//Getting options
  let
trimmedData = data.filter(function(str) {
   
return /\S/.test(str);
   
});
 
//Getting options without spaces
  let
slicedData = trimmedData.slice(3,trimmedData.length);
 
//Adding option to Form
 
item.setChoiceValues(slicedData);   
}
//make List question
function makeListQ(data){
  let
listQuestion = data[2];
  let
item = FORM.addListItem();
 
item.setTitle(listQuestion);
  let
trimmedData = data.filter(function(str) {
   
return /\S/.test(str);
   
});
  let
slicedData = trimmedData.slice(3,trimmedData.length);
 
item.setChoiceValues(slicedData);   
}
//make Scale question
function makeScaleQ(data){
  let
scaleQ = data[2];
  let
item = FORM.addScaleItem();
 
item.setTitle(scaleQ);
  
  let
trimmedData = data.filter(function(str) {
 
return /\S/.test(str);
  });
  
 
//Get and set lower and upper bounds of scale
  let
lower = trimmedData.slice(3, 4);
  let
upper = trimmedData.slice(4, 5);
 
item.setBounds(lower, upper);
 
//Set labels to lower and upper bounds
 
item.setLabels(trimmedData.slice(5, 6), trimmedData.slice(6, 7));   
}
//make Checkbox question
function makeCheckboxQ(data){
  let
checkboxQ = data[2];
  let
item = FORM.addCheckboxItem();
 
item.setTitle(checkboxQ);
  let
trimmedData = data.filter(function(str) {
   
return /\S/.test(str);
   
});
  let
slicedData = trimmedData.slice(3,trimmedData.length);
  
item.setChoiceValues(slicedData);   
}
//make Grid question
function makeGridQ(data){
  let
gridQ = data[2];
  let
item = FORM.addGridItem();
 
item.setTitle(gridQ);
  
  let
trimmedData = data.filter(function(str) {
   
return /\S/.test(str);
   
});
    
 
//Find where "Columns:" text is in array
  let
columnPosition = trimmedData.indexOf("Columns:");
  
 
//Get row values for grid
  let
slicedDataRows = trimmedData.slice(3,columnPosition);  
 
//Get column values for grid
  let
slicedDataColumns = trimmedData.slice(columnPosition+1,trimmedData.length);
  
 
item.setRows(slicedDataRows);  
 
item.setColumns(slicedDataColumns);  
}
//make Paragraph question
function makeParagraphQ(data){
  let
paragraphText = data[2];
  let
item = FORM.addParagraphTextItem();
 
item.setTitle(paragraphText);
}
 
沒有留言:
張貼留言