2017-10-14 24 views
1

Google AppsスクリプトのHTMLテンプレートに単純な変数(profesorgg)を渡して、私の学校の各教師のHTMLを評価し、パーソナライズされたEメール。これはコードです:google appsスクリプトから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("[email protected]").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("[email protected]", subject, body, {htmlBody: 
htmlbody}); 

}}}}} 

HTMLファイル:HERE profesorggを呼び出すためにtriyng 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(); 

I`m(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> 

可能です?おかげでたくさんのあなたの助けのための

マリオ・モレノ

答えて

0

私はあなたのコードの権利を読めば、あなたは次のように変数「profesorgg」を渡している:行くための正しい方法である

html.data = profesorgg; 

が、あなたが実際にあなたのHTMLに変数 "データ"を宣言し、それにprofesorggの値を割り当てることに注意してください。 これは、次の行は、あなたのhtmlで動作するため、あなたのhtmlに

<? data ?> 

は、

var data = SpreadsheetApp.openById("myspreadsheet") 
.getSheetByName("DATOS").getDataRange().getValues(); 

とにかく、私はあなたがラインでそれをオーバーライドしていると思うprofesorggのexecptの値を返すことを意味します - ファイル:あなたは.GSファイルでこれを行う必要があるだろう

var profesorg = profesorgg; 

html.profesorg = profesorgg; 
+0

それは動作します!どうもありがとう。私はこれで夢中になっていた。再度、感謝します。 –

+0

私は最も喜んで助けます!私はあなたが答えが受け入れられたとマークするなら、私は感謝しますが、私は私が助けることができることにも喜んでいる:) – FatFingersJackson

関連する問題