Google Apps脚本:当数据重复时,防止数据从Google Forms填充到Google Spreadsheet中

问题描述 投票:2回答:1

我有一个简单的Google表单,它是通过Google Apps脚本生成的,它将数据存储到脚本创建的电子表格中。当用户通过Google表单提交数据时,我想检查电子邮件是否在电子表格中重复,如果重复,那么我想防止插入。对此我的任何指导将不胜感激。我相信onFormSubmit上的FormsApp在将数据插入电子表格后运行。如果是这种情况,我将如何处理副本?

google-apps-script google-form
1个回答
0
投票
  • 如果您将所有响应都存储在destination spreadsheet中,则无法防止插入。

  • 您可以做的是创建一个自定义电子表格,您可以在其中手动插入您选择的表单响应-基于respondent email

  • 为此,您需要创建绑定到Google表单的脚​​本,该脚本将在onFormSubmit上检索触发最新的响应,将响应者的电子邮件与以前响应中的电子邮件进行比较,并根据结果将响应插入或不插入到您选择的电子表格。

示例代码:

function myFunction() {
  var form=FormApp.getActiveForm();
  //set up the collection of emails
  form.setCollectEmail(true);
  var responses=form.getResponses();
  var lastResponse=responses[responses.length-1];
  var lastRespondent=lastResponse.getRespondentEmail();
  var duplicate=false;
  for(var i=0;i<responses.length-1;i++){
    if(responses[i].getRespondentEmail()==lastRespondent){
      duplicate=true;
    }
  }
  if(duplicate==false){
    var mySheet=SpreadsheetApp.openById('SPREADSHEET_OF_YOUR_CHOICE').getSheetByName('Sheet1');
    var items=[];
    for(var j=0;j<lastResponse.getItemResponses().length;j++){
      items.push(lastResponse.getItemResponses()[j].getResponse())
    }
    mySheet.appendRow(items)   
  }
}
© www.soinside.com 2019 - 2024. All rights reserved.