Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Function GoogleScript-通过电子邮件从Google sheet发送非空值-OnFormSubmit_Function_Google Apps Script_Null_Macos Mail App - Fatal编程技术网

Function GoogleScript-通过电子邮件从Google sheet发送非空值-OnFormSubmit

Function GoogleScript-通过电子邮件从Google sheet发送非空值-OnFormSubmit,function,google-apps-script,null,macos-mail-app,Function,Google Apps Script,Null,Macos Mail App,我有一个大约50列的工作表,我正试图通过电子邮件将HTML格式的非空白字段发送给用户;但只有非空字段,这是我的代码,它返回空字段和非空字段,另外我只需要它通过电子邮件发送上一次提交的表单,而不是所有表单: function onFormSubmit(e) { var ss = e.source; var sheet = ss.getActiveSheet(); var range = e.range.getA1Notation(

我有一个大约50列的工作表,我正试图通过电子邮件将HTML格式的非空白字段发送给用户;但只有非空字段,这是我的代码,它返回空字段和非空字段,另外我只需要它通过电子邮件发送上一次提交的表单,而不是所有表单:

      function onFormSubmit(e) {
      var ss = e.source;
      var sheet = ss.getActiveSheet();          
      var range = e.range.getA1Notation();
      var column = e.range.getColumn();
      var row = e.range.getRow();
      var values = e.namedValues;
      var htmlBody = '<ul>';
      for (Key in values) {
        var label = Key;
        var data = values[Key];
        htmlBody += '<li>' + label + ": " + data + '</li>';
       };
       htmlBody += '</ul>'
     var Submitter = 3;
     var Submitteremail = sheet.getRange(row,Submitter).getValue();

  MailApp.sendEmail({
         to: "Jason@xxxx.com", 
         replyTo: Submitteremail, 
         subject, 
         htmlBody : htmlBody});
 Logger.log("checkpoint5");
 }
函数onFormSubmit(e){
var ss=e.来源;
var sheet=ss.getActiveSheet();
var range=e.range.getA1Notation();
var column=e.range.getColumn();
var row=e.range.getRow();
var值=e.NamedValue;
var htmlBody='
    '; 用于(输入值){ var标签=键; var数据=值[键]; htmlBody+='
  • '+label+“:“+data+'
  • ”; }; htmlBody+='
' var提交者=3; var Submitteremail=sheet.getRange(行,Submitter.getValue(); MailApp.sendmail({ 至:Jason@xxxx.com", 回复:提交人电子邮件, 主题,, htmlBody:htmlBody}); Logger.log(“检查点5”); }
在您最初的帮助之后,这里是我附加的代码:

function onFormSubmit(e) {
const sh=e.range.getSheet();          
var htmlBody='<ol>';
var Url = "https://docs.google.com/xxx";
var Text = "CMF Form Submission Sheet";
for(key in e.namedValues) {
  if(e.namedValues[key][0].length>0) {
    htmlBody += '<li>' + key + ": " + e.namedValues[key][0] + '</li>';
 }
}
htmlBody += '<p>' + '\n' + '\n' + "<a href=\""+ Url + "\">" + Text + "</a>" + 
'\n' + '\n' + '\n' + '<p>' + '</ol>' ;
var Submitteremail = e.values[1];
var Type = e.values[6];
var CMFNumber = e.values[0];
var Sub = "A new CMF has been submitted for a " + Type;
MailApp.sendEmail({to:"Jason.@xxx.com",subject: Sub, replyTo:Submitteremail, 
htmlBody:htmlBody});
Logger.log(html);
}
函数onFormSubmit(e){
const sh=e.range.getSheet();
var htmlBody='';
变量Url=”https://docs.google.com/xxx";
var Text=“CMF表格提交表”;
for(输入e.namedvalue){
if(e.namedValues[key][0]。长度>0){
htmlBody+='
  • '+key+“:“+e.namedValues[key][0]+'
  • ”; } } htmlBody+=''+'\n'+'\n'+''+'+ '\n'+'\n'+'\n'+''+''; var Submitteremail=e.values[1]; var类型=e.值[6]; var CMFNumber=e.值[0]; var Sub=“已为“+类型提交了新的CMF; MailApp.sendmail({to:“Jason@xxx.com”),主题:Sub,回复:Submitteremail, htmlBody:htmlBody}); Logger.log(html); }
    这太棒了!我最终改变了一些事情;但是,在发送电子邮件时,如何保持列标题从左到右的顺序?不删除空格,使用普通for循环或forEach和标题数组如何<代码>常量headerArray=sh.getRange(1,1,1,sh.getLastColumn()).getValues().flat(){html+='
  • '+headerray[i]+':'+v+'
  • ';})`这是一些激烈的代码!我真的不知道该在哪里使用该代码,或者用它替换什么。这只是一个循环,它会按照它们在表单中的顺序打印它们。那么我该在我的代码中使用它呢?在IF语句之上?还是取而代之?