google-apps-script - 删除存储在 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()
}
解决方案
推荐阅读
- postgresql - 如何将 PostgreSQL 9.6 中的数据库备份恢复到 PostgreSQL 12.2?
- c# - 如何访问 Outlook vsto 中的“收件人”自动填充电子邮件地址?缓存的联系人
- sql - T-SQL 存储过程错误:关键字“END”附近的语法不正确。严重性 15 PROCEDURE_1
- conditional-formatting - LibreOffice Calc(日期具有过去的编码格式)
- java - Solr Suggester 不适用于复制字段
- qt - QML FileDialog - 对要选择的文件设置数量限制
- javascript - connection.playStream 不是函数
- git-svn - 我可以用 subgit 映射 svn 外部吗?
- c# - 登录.net core 3.1 Web应用程序后如何在startup.cs中设置全局数据?
- sql - 使用if条件的sql多场景