首页 > 解决方案 > 谷歌课堂表格

问题描述

我有一个脚本,可以从 Google 的问题电子表格中生成一个测验。是否可以以编程方式分配定义数量的问题(例如 4 个),从谷歌问题表中随机选择,例如 20 行问题?这样每个学生都会从表中随机选择 4 个问题。

标签: google-apps-scriptgoogle-sheets

解决方案


不幸的是,限制问题的数量并将其随机化为单一形式是不可能的。您需要为每组问题创建一个新表格。

在这里,我创建了一个脚本,该脚本将创建一个包含此表中 4 个随机问题的表单。

在此处输入图像描述

代码:

function convertToForm(){

  const ss = SpreadsheetApp.getActive().getActiveSheet();
  const questionList = ss.getRange("A1:A20").getValues();

  const form = FormApp.create('TEST ONLY');

  var randNumArr = createRandNumArr();
  for( var i = 0; i < randNumArr.length; i++ ){
    const item = form.addTextItem();
    item.setTitle(questionList[randNumArr[i]])
  }

  Logger.log('Published URL: ' + form.getPublishedUrl());
  Logger.log('Editor URL: ' + form.getEditUrl());

}

function createRandNumArr(){
  var arr = [];
  while(arr.length < 4){
      var r = Math.floor(Math.random() * 20) + 1;
      if(arr.indexOf(r) === -1) arr.push(r);
  }
  return arr;
}

示例表格:

在此处输入图像描述

在此处输入图像描述


推荐阅读