首页 > 解决方案 > 如何使用 Google Apps 脚本或 GAS 创建 Google 表单测验?

问题描述

是否可以使用 GAS 从电子表格上的问题和答案列表中创建测验表格?我正在为英语学习者做一个单词测试,测试者被要求为每个问题输入一个答案。我创建了一个包含多个问题或单选按钮的测验...,但我无法将电子表格中的 TEXT 答案导入 TEXT 类型的测验。

我的脚本如下...

function myFunction() {
 var ss = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Sheet1');
 var range = ss.getDataRange(); 
 var data = range.getValues();
 var numberRows = range.getNumRows();
 var numberColumns = range.getNumColumns();
 var firstRow = 1;
 var form = FormApp.openById('');

 for(var i=0;i<numberRows;i++){
  var questionType = data[i][0]; 
  if (questionType==''){
     continue;
  }
  else if(questionType=='TEXT'){
   form.addTextItem()
     .setTitle(data[i][1]) 
     .setHelpText(data[i][2])
     .setRequired(true);
  } 

标签: google-apps-scriptgoogle-formsgoogle-form-quiz

解决方案


  1. 查看文档示例
  2. 一旦你了解它是如何工作的,首先添加addTextItem()
  3. 使其适应您的工作表/需求

例子:

  • 我在 A 列上有以下问题列表:

在此处输入图像描述

  • 现在我想将这些问题转换成这种形式:

在此处输入图像描述

  • 您应该适应您的需求的源代码:
function convertToForm(){

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

  const form = FormApp.create('New Form');

  questionList.forEach( (question) => { 
    const item = form.addTextItem();
    item.setTitle(question[0])
  })

  // press Ctrl+Enter to see form urls
  Logger.log('Published URL: ' + form.getPublishedUrl());
  Logger.log('Editor URL: ' + form.getEditUrl());

}

参考:


推荐阅读