google-apps-script - 谷歌课堂表格
问题描述
我有一个脚本,可以从 Google 的问题电子表格中生成一个测验。是否可以以编程方式分配定义数量的问题(例如 4 个),从谷歌问题表中随机选择,例如 20 行问题?这样每个学生都会从表中随机选择 4 个问题。
解决方案
不幸的是,限制问题的数量并将其随机化为单一形式是不可能的。您需要为每组问题创建一个新表格。
在这里,我创建了一个脚本,该脚本将创建一个包含此表中 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;
}
示例表格:
推荐阅读
- java - 如何将节点对象注入spring mvc中的服务类?
- asp.net-core - 运行 aspnetcore 应用程序,使用它的 API 并从 Azure DevOps 关闭
- regex - 驼峰模式匹配
- javascript - 将数组映射到对象
- c++ - 我的 c++ 编译器给出了正确的输出,但 c++ 的 codeforces 编译器给出了错误的输出
- python - Google Cloud Functions - Cloud SQL 中止连接
- android - 如果 react-native DeviceMotion 不可用怎么办?
- ios - 未找到模块“audio_session”
- r - 在R中测量给定日期周围的股票收益
- python-3.x - Python脚本可以在控制台运行,但双击.py文件后无法运行