首页 > 解决方案 > 删除存储在 Google 表单回复中的电子邮件

问题描述

背景:

我正在尝试创建一个由人们填写的谷歌表格,然后发送第二个表格由其他人(夫妇)填写。表单响应必须是匿名的,但响应也需要链接。

到目前为止,我的解决方案 - 使用唯一 ID 进行链接(荣誉 ->如何为谷歌表单输入分配唯一 ID?)然后使用输入的电子邮件发送一条消息,其中包含指向下一个表单的预制链接ID,然后从工作表中删除电子邮件地址。

问题

我坚持的下一个卫生措施是从 Google 表单回复中删除电子邮件地址。一种方法是使用deleteAllResponses(),但这也会删除我打算使用的谷歌预先完成的基本数据分析(以节省创建一些图表的时间)。

我试图找到一种方法来访问响应对象并删除/修改电子邮件字段,但无法实现。

将不胜感激。

function myFunction() {
  //delete the last email that was added
  function deleteEmails(Row){
    sheet.getRange('B'+Row + ':B'+Row).clearContent();
  }
  
  //delete all responses - would like to change this to only delete/modify the email field.
  function deleteResponses() {
    var form = FormApp.openById('The form ID');
    form.deleteAllResponses();
  }
  
  //get the data on the sheet
  var sheet = SpreadsheetApp.openById("The sheet ID").getSheetByName('Form Responses 1');
  var StartRow = 1;
  var LastRow = sheet.getLastRow();
  var Range = sheet.getRange(LastRow, 2, 1, 62)
  var AllValues = Range.getValues();
  
  //if the person disagrees to fill the form - dont send an email
  if (AllValues[0][1] != 'disagree') {
    var SendTo = AllValues[0][0];
    var body = "Thank you for answering pfa a link for the sedond form";
  
    //send the actual email  
    MailApp.sendEmail({
        to: SendTo,
        cc: "",
        subject: 'Thank you for answering',
        htmlBody: body,
    }); 
  }
  
  //delete emails and responses
  deleteEmails(LastRow)
  deleteResponses()
}

标签: google-apps-scriptgoogle-appsgoogle-forms

解决方案


推荐阅读