我很想将一个简单的变量(profesorgg)传递给google Apps脚本中的HTML模板,以便评估我校中每位教师的HTML并向他们发送个性化的电子邮件。这是代码:
Code.gs
function Recordatorio() {
//COGIENDO UN PROFESOR DESDE GROUPS
var page = AdminDirectory.Users.list({
domain: 'iesovaldemedel.es',
orderBy: 'familyName',
maxResults: 400});
var has = GroupsApp.getGroupByEmail("profesores@iesovaldemedel.es").getUsers();
var users = page.users;
if (users) {
for (var i = 0; i < users.length; i++) {
var email = users[i].primaryEmail;
var nombre = users[i].name.givenName;
var apellidos = users[i].name.familyName;
for (var h in has){
if (has[h] == email){
var profesorgg = apellidos + ", "+nombre;
var subject ="Resumen de faltas para " +profesorgg + "." ;
var body = "Se adjunta el resumen de faltas del mes que termina";
var html = HtmlService.createTemplateFromFile("recordatoriohtml");
html.data = profesorgg;
var htmlbody =html.evaluate().getContent();
MailApp.sendEmail("mariomorenogo@gmail.com", subject, body, {htmlBody:
htmlbody});
}}}}}
HTML文件:recordatoriohtml
<html>
<head>
</head>
<body>
<h1 align="center">IESO Valdemedel</h1>
<div class = "wrapper3">
<image align="center" src="image>
</image>
</div>
<? var today = new Date;
var mes = today.getMonth();
var ano = today.getYear();
var date = Utilities.formatDate(today, "GMT+1", "dd-MM-yyyy");
var data = SpreadsheetApp.openById("myspreadsheet")
.getSheetByName("DATOS").getDataRange().getValues();
我在这里打电话给profesorgg(HMTL文件继续)
var profesorg = profesorgg;
var faltamas=0;
var faltas =[];
//BUSCANDO A ESE PROFESOR EN LAS FALTAS
for ( var o = 1 ; o<data.length; o++){
var timestamp = data[o][0];
var profesor = data[o][1];
var diadefalta = data[o][2];
var todoeldia = data[o][4];
var motivo = data[o][3];
if(diadefalta != ""){
var diadefalta2 = Utilities.formatDate(diadefalta, "GMT+2", "dd-MM-yyyy");
var mesfalta = diadefalta.getMonth();
var anofalta = diadefalta.getYear();}
else{var diadefalta = "-"}
if (ano == anofalta && mes == mesfalta && profesor == profesorg){
faltamas++
faltas.push([diadefalta2,profesor,todoeldia,motivo]);}}
if(faltamas >0){?>
<hr width=100%>
<h1 align = "center">Resumen Futuro</h1>
<hr width=100%>
<h2> Faltas para mañana </h2>
<?if(faltas !=""){?>
<div>
<table style="width:100%">
<tr>
<th id="t01">Fecha</th>
<th id="t02">Todo el día</th>
<th id="t03">Motivo</th>
</tr>
<?for (var c=0; c<faltas.length; c++){?>
<tr>
<td id="td01"><?=faltas[c]?></td>
<td id="td02"><?=faltas[c][0]?></td>
<td id="td03"><?=faltas[c][2]?></td>
<td id="td04"><?=faltas[c][3]?></td>
</tr>
<?}}}?>
</table>
<br>
<hr width=100%>
<?if (faltas ==""){?>
No tienes faltas este mes
<?}?>
<br>
</div>
<hr width=100%>
<h3>Atentamente, IESO Valdemedel</h3>
<hr width=100%>
</body>
<footer>
<b><i><small>Powered by</small></i></b> <br>
<a href="http://www.teachinginsights.es">
<img src="image>
</a>
<hr width=100%>
</footer>
</html>
¿有可能吗?非常感谢您的帮助
Mario Moreno
答案 0 :(得分:1)
如果我正确地阅读了您的代码,那么您将传递变量&#34; profesorgg&#34;像这样:
html.data = profesorgg;
这是正确的方法,但请注意,您实际上是在声明变量&#34;数据&#34;到您的HTML并为其分配profesorgg的值。 这意味着在你的html中
<? data ?>
将返回profesorgg execpt的值,我认为你在行中覆盖它
var data = SpreadsheetApp.openById("myspreadsheet")
.getSheetByName("DATOS").getDataRange().getValues();
无论如何,要在你的html文件中使用下一行:
var profesorg = profesorgg;
您需要在.gs文件中执行此操作:
html.profesorg = profesorgg;