Google文档电子表格,发送电子邮件和订单值

时间:2012-03-22 13:42:31

标签: google-apps-script google-sheets

我使用Google文档电子表格创建了一个表单,并创建了一个脚本,当用户填写表单时发送电子邮件:

function sendFormByEmail(e){

      var email = "AAA"; 
      var subject = "XXX";  
      var message = "";
      for(var field in e.namedValues)
        message += field + ' = '+ e.namedValues[field].toString() + "\n\n"; 

      var advancedArgs = {replyTo:e.namedValues['E-mail'].toString()};
      MailApp.sendEmail(email, subject, message, advancedArgs);


}

脚本有效, 但是当它发送电子邮件时,数据不会被分类为表单的字段。

如何修改我的脚本以对电子表格(表单)中的值进行排序?

1 个答案:

答案 0 :(得分:1)

您可以从电子表格中获取列顺序。像这样:

function sendFormByEmail(e){

      var email = "AAA"; 
      var subject = "XXX";  
      var message = "";
      var s = SpreadsheetApp.getActive().getSheetByName("Sheet1");
      var headers = s.getRange(1,1,1,s.getLastColumn()).getValues()[0];
      for(var i in headers)
        message += headers[i] + ' = '+ e.namedValues[headers[i]].toString() + "\n\n"; 

      var advancedArgs = {replyTo:e.namedValues['E-mail'].toString()};
      MailApp.sendEmail(email, subject, message, advancedArgs);
}

当然,您必须将工作表名称Sheet1更改为您的实际工作表名称。 顺便说一句,我已经写了一个脚本来做更多的事情,也许你想要检查它(如果这不仅仅是一个编程练习)。它被称为 FormEmailer ,您可以在脚本库及其site中找到它。