我使用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); }
脚本有效, 但是当它发送电子邮件时,数据不会被分类为表单的字段。
如何修改我的脚本以对电子表格(表单)中的值进行排序?
答案 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中找到它。