如何在Google表单的回复电子表格中为每个响应添加唯一代码?

时间:2015-07-11 13:51:12

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

我使用Google的Quickstart: Add-on for Google Forms为我的表单的受访者启用电子邮件通知。我还添加了几行来向每个受访者发送唯一代码,我希望将这些代码存储在回复表中。

下面的代码发送带有代码的消息,但它不会在响应表中存储代码。

function sendRespondentNotification(response) {
  var form = FormApp.getActiveForm();
  var settings = PropertiesService.getDocumentProperties();
  var emailId = settings.getProperty('respondentEmailItemId');
  var emailItem = form.getItemById(parseInt(emailId));
  var respondentEmail = response.getResponseForItem(emailItem)
      .getResponse();
  if (respondentEmail) {
    var template =
        HtmlService.createTemplateFromFile('RespondentNotification');
    template.paragraphs = settings.getProperty('responseText').split('\n');
    template.kod = (new Date).getTime().toString(16).substring(5);
    template.notice = NOTICE;
    var message = template.evaluate();
    MailApp.sendEmail(respondentEmail,
        settings.getProperty('responseSubject'),
        message.getContent(), {
          name: form.getTitle(),
            htmlBody: message.getContent()
        });
    var ss = SpreadsheetApp.getActiveSpreadsheet();
    var sheet = ss.getSheets()[0];
    var LastRow = sheet.getLastRow();
    var cell = sheet.getRange(LastRow, 5);
    cell.setValue(template.kod);    
  }
}

1 个答案:

答案 0 :(得分:0)

您可以使用onFormSubmit生成唯一ID,并将其包含在电子邮件中以供webapp使用。 id可能是简单的事情,比如响应的行号(不在e.values中)或动态生成并作为新列写入响应电子表格。添加列不会破坏表单。