5

我想创建一个使用电子表格中的数据的表单,以便它是动态的。是否有可能做到这一点?我无法找到任何描述如何或任何示例的地方。

似乎所有可能的方法都是从表单中填充电子表格,我也会使用它,但它不是这里的主要关注点。

4

4 回答 4

4

是的。使用表单脚本并使用 FORM OPEN 上的触发器更新电子表格中的信息。这是一个示例,它从两个不同的工作表中获取数据,并将数据插入组合框中并插入到多选控件中。

function getNewNames(){
  var form = FormApp.getActiveForm();
  var items = form.getItems();

  var ss = SpreadsheetApp.openByUrl(
     'https://docs.google.com/spreadsheets/d/YOURDOCSNAMEHERE/edit');
    var assSheet1 = ss.getSheetByName('Sheet1');
    var assValues = assSheet1.getDataRange().getValues();
    var values = assValues.slice(1);
    var valSort = values.sort();

  var ss2 = SpreadsheetApp.openByUrl(
     'https://docs.google.com/spreadsheets/d/DOCSNAMEHERE/edit');
     var playerSheet1 = ss2.getSheets()[0];
     var playerValues = playerSheet1.getDataRange().getValues(); 
     var player = playerValues.slice(0);
     var plySort = player.sort();

  var names = [];

  for(var p = 0; p < plySort.length; p++){
    names.push(plySort[p][0])
  }

  var pList = items[0].asListItem();
  pList.setChoiceValues(names).setRequired(true).setHelpText('Please Select Player Name')

  var areas = [];
  for (var i = 0; i < valSort.length; i++) {
      areas.push(valSort[i][1])
    }

  var aList = items[1].asMultipleChoiceItem();
      aList.setChoiceValues(areas).setRequired(true).setHelpText('Select Area of Assessment')

}
于 2015-01-07T19:03:49.800 回答
4

Google Apps Scripts .. 最后是一种以编程方式生成 Google 表单的有据可查的方法。https://developers.google.com/apps-script/reference/forms/

于 2013-06-04T22:51:08.967 回答
1

您可能想看看FormRanger 插件。它不会填充表单的问题,而是动态填充多项选择题、列表或网格问题中的可能答案。它甚至可以从表单的先前响应中提取数据。它可以设置为每次提交后或每小时自动更新。请注意:如果您使用过滤问题根据问题的答案重定向到不同的部分,则不能将 Formranger 用于该问题,因为它会破坏重定向。

于 2017-03-27T20:00:11.010 回答
0

目前有一个功能请求要求我们添加一个表单 API,它允许您创建、检索、更新和删除电子表格的表单。尽管该功能目前不存在,但如果存在,您将能够使用 Forms API 和 Spreadsheets Data API 将电子表格数据链接到表单数据。功能请求在这里

于 2010-04-03T15:32:23.350 回答