【问题标题】:Creating Form Responses with Google Sheet Data使用 Google 表格数据创建表单响应
【发布时间】:2017-05-12 02:24:19
【问题描述】:

我有一个连接到 Google 表格的 Google 表单。问题是我的工作表中存在未通过表单提交的现有数据,因此我希望能够从工作表中获取数据并为未从表单中填写的每一行提交一个表单。我可以使用脚本编辑器执行此操作吗?

编辑:这是我目前拥有的代码。现在,每个表单都在提交,但字段显示“未定义”

2[设置]1[功能]

【问题讨论】:

  • 欢迎来到 Stack Overflow。是的,您可以使用 Apps 脚本执行此操作。一个好的问题通常包含一些代码,并解释您尝试过的内容。
  • 您的“已解决”是否意味着您现在有了问题的答案?然后发布它以帮助其他人。如果您觉得不值得,请删除您的问题。

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


【解决方案1】:

这是为我的电子表格中的每一行数据正确提交表单的代码。名字在 A 列,姓在 B 列等。当您在工作表上调用“sheet.getRange()”时,您需要确保在使用此数据创建表单响应之前使用“.getValues()” . 注意:我的示例代码仅提交第 3-8 行的表单。

var ss = SpreadsheetApp.getActive(); 
var sheet = ss.getSheetByName("Data"); // grabs sheet

var formUrl = ss.getFormUrl();             
var form = FormApp.openByUrl(formUrl); // grabs the connected form
var questions = form.getItems();

// Getting the fields of the form questions 
var firstName = questions[0].asTextItem();
var lastName = questions[1].asTextItem();
var emergency = questions[2].asTextItem();
var email = questions[3].asTextItem();
var cell = questions[4].asTextItem();
var specialty = questions[5].asTextItem();


var dataFirstNames = sheet.getRange("A3:A10").getValues();
var dataLastNames = sheet.getRange("B3:B10").getValues();
var dataEmergencyNumbers = sheet.getRange("C3:C10").getValues();
var dataEmails = sheet.getRange("E3:E10").getValues();
var dataCellNumbers = sheet.getRange("F3:F10").getValues();
var dataSpecialties = sheet.getRange("G3:G10").getValues();


  function myFunction() {

  for(i = 0; i < 8; i++) {

      var formResponse = form.createResponse();

      var d1 = dataFirstNames[i];
      var r1 = firstName.createResponse(d1); 

      var d2 = dataLastNames[i];
      var r2 = lastName.createResponse(d2);

      var d3 = dataEmergencyNumbers[i];
      var r3 = emergency.createResponse(d3); 

      var d4 = dataEmails[i];
      var r4 = email.createResponse(d4);

      var d5 = dataCellNumbers[i];
      var r5 = cell.createResponse(d5); 

      var d6 = dataSpecialties[i];
      var r6 = specialty.createResponse(d6);

      formResponse.withItemResponse(r1);
      formResponse.withItemResponse(r2);
      formResponse.withItemResponse(r3);
      formResponse.withItemResponse(r4);
      formResponse.withItemResponse(r5);
      formResponse.withItemResponse(r6);

     formResponse.submit();
 } 

}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-10-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-09
    • 2014-01-27
    • 1970-01-01
    相关资源
    最近更新 更多