是否可以从谷歌电子表格填充谷歌表格?

时间:2009-09-08 13:31:00

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

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

所有看起来可能的是从表单填充电子表格,我也会使用它,但这不是主要关注点。

4 个答案:

答案 0 :(得分:4)

Google Apps Scripts ..最后以编程方式生成Google表单的详细记录方式。 https://developers.google.com/apps-script/reference/forms/

答案 1 :(得分:3)

是的。使用表单脚本并使用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')

}

答案 2 :(得分:1)

您可能需要查看FormRanger plugin。它不会填充表单的问题,而是在多选题,列表或网格问题中动态填充可能的答案。它甚至可以从表单的先前响应中提取数据。它可以设置为在每次提交后或每小时后自动更新。 请注意:如果您根据问题的答案使用过滤器问题重定向到不同的部分,则不能使用Formranger来解决这些问题,因为它会破坏重定向。

答案 3 :(得分:0)

目前有一项功能请求,要求我们添加一个Forms API,允许您创建,检索,更新和删除电子表格的表单。尽管此功能目前尚不存在,但是如果有的话,您可以使用Forms API和Spreadsheets Data API将电子表格数据链接到表单数据。 feature request is here