【问题标题】:Auto Populate Multiple Choice in google forms from a list on google sheet从谷歌表格上的列表中自动填充谷歌表单中的多项选择
【发布时间】:2018-06-20 00:05:08
【问题描述】:

所以我有一个包含姓名列表的谷歌表格,我希望谷歌表单上的多选框填充这个列表。 我已经创建了一个脚本来基于此列表创建一个下拉菜单,但无法让多项选择起作用。

这是创建下拉菜单的脚本。

function updateForm(){
// call your form and connect to the drop-down item
var form = FormApp.openById("Form ID");

var namesList = form.getItemById("Data-Item-ID").asListItem ();

// identify the sheet where the data resides needed to populate the drop-down
var ss = SpreadsheetApp.getActive();
var names = ss.getSheetByName("Sheet Name");

// grab the values in the first column of the sheet - use 2 to skip header row 
var namesValues = names.getRange(2, 26, names.getMaxRows() - 1).getValues();

var name = [];
var jjj = -1;

// convert the array ignoring empty cells
for(var i = 0; i < namesValues.length; i++)    
if((namesValues[i][0] != "") & (namesValues[i][0] != "TOTALS") & 
(namesValues[i][0] != "Total Volunteers"))
{
  jjj +=1;
  name[jjj] = namesValues[i][0];
}

// populate the drop-down with the array data
namesList.setChoiceValues(name);

}

【问题讨论】:

  • 您所说的“无法使多项选择起作用”是什么意思?你有错误吗?你试过什么?

标签: google-apps-script google-sheets google-forms


【解决方案1】:

在此处查看:https://developers.google.com/apps-script/reference/forms/multiple-choice-item 您将使用addMultipleChoiceItem()

【讨论】:

  • 感谢您的帮助!我明白了。
【解决方案2】:

请尝试以下代码。

function updateForm(){
  // call your form and connect to the drop-down item
  var form = FormApp.openById("Your Form ID");

  var namesList = form.getItemById("The Drop-Down List ID").asListItem();

// identify the sheet where the data resides needed to populate the drop-down
  var ss = SpreadsheetApp.getActive();
  var names = ss.getSheetByName("Name of Sheet in Spreadsheet");

  // grab the values in the first column of the sheet - use 2 to skip header row 
  var namesValues = names.getRange(2, 1, names.getMaxRows() - 1).getValues();

  var studentNames = [];

  // convert the array ignoring empty cells
  for(var i = 0; i < namesValues.length; i++)    
    if(namesValues[i][0] != "")
      studentNames[i] = namesValues[i][0];

  // populate the drop-down with the array data
  namesList.setChoiceValues(studentNames);

}

【讨论】:

    【解决方案3】:

    这是一个使用电子表格中的值填充多项选择项的版本,同时还根据多项选择项设置导航:

    function GoToPage() {
    var form = FormApp.openById('MY FORM');  //Identifies the form from where the multiplechoice item resides
    var spreadsheet = SpreadsheetApp.openById("MY SPREADSHEET"); //Identifies the spreadsheet from where to find the sheet with values for the multiplechoice item
    var sheet = spreadsheet.getSheetByName("MY SHEET");  //Identifies the sheet with values for the multiplechoice item
    var multiplechoice = form.getItemById("MY MULTIPLE CHOICE ID").asMultipleChoiceItem() //identifies the multiplechoice item by its Id  
    var pagebreak01 = form.getItemById("PAGE BREAK ID 1").asPageBreakItem(); //Identifies the section where to navigate to upon chosing the first choice from the multiplechoice item
    var pagebreak02 = form.getItemById("PAGE BREAK ID 2").asPageBreakItem();//Identifies the section where to navigate to upon chosing the second choice from the multiplechoice item
    var pagebreak03 = form.getItemById("PAGE BREAK ID 3").asPageBreakItem(); //Identifies the section where to navigate to upon chosing the third choice from the multiplechoice item, and so on
    var choice1 = sheet.getRange("RANGE 1 FROM MY SHEET").getValues(); //Identifies the value for the first choice of the multiplechoice item
    var choice2 = sheet.getRange("RANGE 2 FROM MY SHEET").getValues(); //Identifies the value for the second choice of the multiplechoice item
    var choice3 = sheet.getRange("RANGE 3 FROM MY SHEET").getValues();  //Identifies the value for the third choice of the multiplechoice item, and so on
    multiplechoice.setChoices([ //sets the values, individually, and the pagebreaks for each value
      multiplechoice.createChoice(choice1, pagebreak01),
      multiplechoice.createChoice(choice2, pagebreak02),
      multiplechoice.createChoice(choice3, pagebreak03)]); 
    }
    

    希望对你有帮助

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-09-06
      • 1970-01-01
      • 1970-01-01
      • 2022-08-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多