使用电子表格数据在电子邮件中填充HTML表格
我有一个谷歌电子表格和一个数据表。填写表格后,我的脚本将获取数据并通过电子邮件发送。我有一些代码,可以从数据范围中获取我想要的每个值,并将其放入一个表中,但这一切都是通过识别100多个变量来完成的 是否有一种方法可以使用某种数组,以便用数据范围中的每一行数据填充html表 我坦承自己是一名编程新手,这可能是最糟糕的意大利面代码之一。非常感谢您的帮助(即使是javascript入门) //此脚本通过电子邮件将表单内容发送给给定的收件人使用电子表格数据在电子邮件中填充HTML表格,html,email,google-apps-script,google-sheets,Html,Email,Google Apps Script,Google Sheets,我有一个谷歌电子表格和一个数据表。填写表格后,我的脚本将获取数据并通过电子邮件发送。我有一些代码,可以从数据范围中获取我想要的每个值,并将其放入一个表中,但这一切都是通过识别100多个变量来完成的 是否有一种方法可以使用某种数组,以便用数据范围中的每一行数据填充html表 我坦承自己是一名编程新手,这可能是最糟糕的意大利面代码之一。非常感谢您的帮助(即使是javascript入门) //此脚本通过电子邮件将表单内容发送给给定的收件人 var sheet = SpreadsheetApp.getA
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Report");
var recloc = sheet.getRange("D2"); //cell location of student email
var recipient = recloc.getValue(); //student's email address
var lastloc = sheet.getRange("B2");
var last = lastloc.getValue();
var firstloc = sheet.getRange("A2");
var first = firstloc.getValue();
var courseloc = sheet.getRange("E2");
var course = courseloc.getValue();
var dateloc = sheet.getRange("C2");
var date = dateloc.getValue();
var gradeloc = sheet.getRange("D5");
var grade = gradeloc.getValue();
var totloc = sheet.getRange("D4");
var total = totloc.getValue();
var perloc = sheet.getRange("D6");
var percent = perloc.getValue();
var dataRange = sheet.getRange("A4:B9");
var data = dataRange.getValues();
// assignment cell locations
var assignloc1 = sheet.getRange("A5");
var assignloc2 = sheet.getRange("A6");
var assignloc3 = sheet.getRange("A7");
var assignloc4 = sheet.getRange("A8");
var assignloc5 = sheet.getRange("A9");
// assignment values
var assign1 = assignloc1.getValue();
var assign2 = assignloc2.getValue();
var assign3 = assignloc3.getValue();
var assign4 = assignloc4.getValue();
var assign5 = assignloc5.getValue();
// assignment score locations
var scoreloc1 = sheet.getRange("B5");
var scoreloc2 = sheet.getRange("B6");
var scoreloc3 = sheet.getRange("B7");
var scoreloc4 = sheet.getRange("B8");
var scoreloc5 = sheet.getRange("B9");
// assignment score values
var score1 = scoreloc1.getValue();
var score2 = scoreloc2.getValue();
var score3 = scoreloc3.getValue();
var score4 = scoreloc4.getValue();
var score5 = scoreloc5.getValue();
// error message
var errmess = first+' '+last+', your Pin code did not match. Please double check your entry and re-submit. Contact your professor if you get this message again.';
var subject = course+' Grade Report';
var body = first+' '+last+', here is your grade report, requested on '+date+'. Grade '+grade+'/'+total+', '+percent+'%. Score breakdown: '+data;
var bodyHTML1 = '<p>'+first+' '+last+', here is your grade report.<br> Grade '+grade+'/'+total+', '+percent+'%.</p>';
// var bodyHTML2 = '<p>'+data+'</p>';
var bodyHTML2 = '<table> <tr> <td> '+assign1+' </td> <td> '+score1+' </td> </tr> <tr> <td> '+assign2+' </td> <td> '+score2+' </td> </tr> <tr> <td> '+assign3+' </td> <td> '+score3+' </td> </tr> <tr> <td> '+assign4+' </td> <td> '+score4+' </td> </tr> <tr> <td> '+assign5+' </td> <td> '+score5+' </td> </tr> </table>';
var bodyHTML3 = '<p>Sent by the <a href="http://www.steegle.com/">Steegle.com</a> Contact Us Form Google Apps Script</p>';
var advancedArgs = {htmlBody:bodyHTML1+bodyHTML2 ,};
var pinloc = sheet.getRange("G2");
var pin = pinloc.getValue();
if(pin == 1){
MailApp.sendEmail(recipient, subject, body, advancedArgs);
}else{
MailApp.sendEmail(recipient, subject, errmess);
}
}
var sheet=SpreadsheetApp.getActiveSpreadsheet().getSheetByName(“报告”);
var recloc=表中的getRange(“D2”)//学生电子邮件的手机位置
var recipient=recloc.getValue()//学生的电子邮件地址
var lastloc=表的getRange(“B2”);
var last=lastloc.getValue();
var firstloc=表。getRange(“A2”);
var first=firstloc.getValue();
var courseloc=sheet.getRange(“E2”);
var course=courseloc.getValue();
var dateloc=sheet.getRange(“C2”);
var date=dateloc.getValue();
var gradeloc=表的getRange(“D5”);
var grade=gradeloc.getValue();
var totloc=表的getRange(“D4”);
var total=totloc.getValue();
var perloc=表的getRange(“D6”);
变量百分比=perloc.getValue();
var dataRange=sheet.getRange(“A4:B9”);
var data=dataRange.getValues();
//分配单元位置
var assignloc1=表.getRange(“A5”);
var assignloc2=表.getRange(“A6”);
var assignloc3=表.getRange(“A7”);
var assignloc4=表.getRange(“A8”);
var assignloc5=表.getRange(“A9”);
//赋值
var assign1=assignloc1.getValue();
var assign2=assignloc2.getValue();
var assign3=assignloc3.getValue();
var assign4=assignloc4.getValue();
var assign5=assignloc5.getValue();
//作业分数位置
var scoreloc1=sheet.getRange(“B5”);
var scoreloc2=sheet.getRange(“B6”);
var scoreloc3=sheet.getRange(“B7”);
var scoreloc4=sheet.getRange(“B8”);
var scoreloc5=sheet.getRange(“B9”);
//作业分数值
var score1=scoreloc1.getValue();
var score2=scoreloc2.getValue();
var score3=scoreloc3.getValue();
var score4=scoreloc4.getValue();
var score5=scoreloc5.getValue();
//错误消息
var errmess=first+''+last+',您的Pin码不匹配。请仔细检查您的输入并重新提交。如果您再次收到此消息,请联系您的教授。“;
变量科目=课程+成绩报告;
var body=first+''+last+',这是您在'+date+'要求的成绩报告。年级“+年级+”/“+总数+”、“+百分比+”%。分数分解:'+数据;
var bodyHTML1=''+first+'+last+',这是你的成绩报告。
成绩'+grade+'/'+total+','+percent+'%。';
//var bodyHTML2=''+data+'';
var bodyHTML2=''+assign1+''+score1+''+assign2+''+assign3+''+score3+''+assign4+''+score4+''+assign5+'';
var bodyHTML3=“由联系我们的谷歌应用程序脚本发送””;
var-advancedags={htmlBody:bodyHTML1+bodyHTML2,};
var pinloc=表。getRange(“G2”);
var pin=pinloc.getValue();
如果(pin==1){
MailApp.sendEmail(收件人、主题、正文、优点);
}否则{
MailApp.sendmail(收件人、主题、错误);
}
}
我冒昧地对您的代码以及生成表的循环进行了一些更改,如下所示:
函数报告2(){
var LOC={
收件人:[1,3],//D2
第一个:[1,0],//A2
last:[1,1],//B2
课程:[1,4],//E2
日期:[1,2],//C2
等级:[4,3],//D5
总计:[3,3],//D4
百分比:[5,3],//D6
};
var sheet=SpreadsheetApp.getActiveSpreadsheet().getSheetByName(“报告”);
var values=sheet.getDataRange().getValues();//一次获取电子表格上的所有值
变量数据={};
for(var i in LOC)//行//列(所有从零开始的索引)
数据[i]=数值[LOC[i][0]][LOC[i][1]];
var errmess=data.first+''+data.last+',您的Pin码不匹配。请仔细检查您的输入并重新提交。如果您再次收到此消息,请与您的教授联系。“;
var主题=数据。课程+成绩报告;
var body=data.first+''+data.last+',这是您的成绩报告,在'+data.date+'.grade'+data.grade+'/'+data.total+','+data.percent+'%上请求。分数明细:'+data.data;
var bodyHTML1=''+data.first+'+data.last+',这是您的成绩报告。
成绩'+data.grade+'/'+data.total+','+data.percent+'%。';
var bodyHTML2='';
对于(变量i=4;i<9;++i)
bodyHTML2+=''+值[i][0]+''+值[i][1]+'';
bodyHTML2+='';
var-advancedags={htmlBody:bodyHTML1+bodyHTML2};
var pin=值[1][6];//G2
如果(引脚==1)
MailApp.sendEmail(收件人、主题、正文、优点);
其他的
MailApp.sendmail(收件人、主题、错误);
}
我开发了一个脚本,可以根据电子表格数据发送电子邮件,就像您正在尝试的那样。我想你会发现它很有用。它叫FormEmailer。您可以在脚本库(在“插入>脚本”菜单下)及其上找到它。我冒昧地对代码以及生成表的循环进行了一些更改,如下所示:
函数报告2(){
var LOC={
收件人:[1,3],//D2
第一个:[1,0],//A2
last:[1,1],//B2
课程:[1,4],//E2
日期:[1,2],//C2
等级:[4,3],//D5
总计:[3,3],//D4
百分比:[5,3],//D6
};
var sheet=SpreadsheetApp.getActiveSpreadsheet().getSheetByName(“报告”);
var values=sheet.getDataRange().getValues();//一次获取电子表格上的所有值
变量数据={};
for(var i in LOC)//行//列(所有从零开始的索引)
数据[i]=数值[LOC[i][0]][LOC[i][1]];
var errmess=data.first+''+data.last+',您的Pin码不匹配。请仔细检查您的输入
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Report");
var recloc = sheet.getRange("D2"); //cell location of student email
var recipient = recloc.getValue(); //student's email address
var lastloc = sheet.getRange("B2");
var last = lastloc.getValue();
var firstloc = sheet.getRange("A2");
var first = firstloc.getValue();
var courseloc = sheet.getRange("E2");
var course = courseloc.getValue();
var dateloc = sheet.getRange("C2");
var date = dateloc.getValue();
var gradeloc = sheet.getRange("D5");
var grade = gradeloc.getValue();
var totloc = sheet.getRange("D4");
var total = totloc.getValue();
var perloc = sheet.getRange("D6");
var percent = perloc.getValue();
var dataRange = sheet.getRange("A4:B9");
var data = dataRange.getValues();
// assignment cell locations
var assignloc1 = sheet.getRange("A5");
var assignloc2 = sheet.getRange("A6");
var assignloc3 = sheet.getRange("A7");
var assignloc4 = sheet.getRange("A8");
var assignloc5 = sheet.getRange("A9");
// assignment values
var assign1 = assignloc1.getValue();
var assign2 = assignloc2.getValue();
var assign3 = assignloc3.getValue();
var assign4 = assignloc4.getValue();
var assign5 = assignloc5.getValue();
// assignment score locations
var scoreloc1 = sheet.getRange("B5");
var scoreloc2 = sheet.getRange("B6");
var scoreloc3 = sheet.getRange("B7");
var scoreloc4 = sheet.getRange("B8");
var scoreloc5 = sheet.getRange("B9");
// assignment score values
var score1 = scoreloc1.getValue();
var score2 = scoreloc2.getValue();
var score3 = scoreloc3.getValue();
var score4 = scoreloc4.getValue();
var score5 = scoreloc5.getValue();
// error message
var errmess = first+' '+last+', your Pin code did not match. Please double check your entry and re-submit. Contact your professor if you get this message again.';
var subject = course+' Grade Report';
var body = first+' '+last+', here is your grade report, requested on '+date+'. Grade '+grade+'/'+total+', '+percent+'%. Score breakdown: '+data;
var bodyHTML1 = '<p>'+first+' '+last+', here is your grade report.<br> Grade '+grade+'/'+total+', '+percent+'%.</p>';
// var bodyHTML2 = '<p>'+data+'</p>';
var bodyHTML2 = '<table> <tr> <td> '+assign1+' </td> <td> '+score1+' </td> </tr> <tr> <td> '+assign2+' </td> <td> '+score2+' </td> </tr> <tr> <td> '+assign3+' </td> <td> '+score3+' </td> </tr> <tr> <td> '+assign4+' </td> <td> '+score4+' </td> </tr> <tr> <td> '+assign5+' </td> <td> '+score5+' </td> </tr> </table>';
var bodyHTML3 = '<p>Sent by the <a href="http://www.steegle.com/">Steegle.com</a> Contact Us Form Google Apps Script</p>';
var advancedArgs = {htmlBody:bodyHTML1+bodyHTML2 ,};
var pinloc = sheet.getRange("G2");
var pin = pinloc.getValue();
if(pin == 1){
MailApp.sendEmail(recipient, subject, body, advancedArgs);
}else{
MailApp.sendEmail(recipient, subject, errmess);
}
}
function report2() {
var LOC = {
recipient: [1,3],//D2
first: [1,0], //A2
last: [1,1], //B2
course: [1,4], //E2
date: [1,2], //C2
grade: [4,3], //D5
total: [3,3], //D4
percent: [5,3], //D6
};
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Report");
var values = sheet.getDataRange().getValues(); //get all values on the spreadsheet at once
var data = {};
for( var i in LOC ) //row //column (all zero-based index)
data[i] = values[ LOC[i][0] ][ LOC[i][1] ];
var errmess = data.first+' '+data.last+', your Pin code did not match. Please double check your entry and re-submit. Contact your professor if you get this message again.';
var subject = data.course+' Grade Report';
var body = data.first+' '+data.last+', here is your grade report, requested on '+data.date+'. Grade '+data.grade+'/'+data.total+', '+data.percent+'%. Score breakdown: '+data.data;
var bodyHTML1 = '<p>'+data.first+' '+data.last+', here is your grade report.<br> Grade '+data.grade+'/'+data.total+', '+data.percent+'%.</p>';
var bodyHTML2 = '<table>';
for( var i = 4; i < 9; ++i )
bodyHTML2 += '<tr><td> '+values[i][0]+' </td><td> '+values[i][1]+' </td></tr>';
bodyHTML2 += '</table>';
var advancedArgs = {htmlBody: bodyHTML1+bodyHTML2};
var pin = values[1][6]; //G2
if( pin == 1 )
MailApp.sendEmail(recipient, subject, body, advancedArgs);
else
MailApp.sendEmail(recipient, subject, errmess);
}