Таблица Google Docs, отправка электронной почты и стоимость заказа - PullRequest
0 голосов
/ 22 марта 2012

Я создал форму с использованием электронной таблицы 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 Ответ

1 голос
/ 23 марта 2012

Вы можете получить порядок столбцов из электронной таблицы.Примерно так:

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 , и вы можете найти его в Галерее сценариев и на сайте .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...