Javascript 从.gs函数中获取一个html表,并在.html正文中调用它
有人能帮助我理解如何调用专用于GmailApp.sendmail()的.HTML正文中的.gs函数生成的HTML表吗? 以下是一个例子: 一,。首先,我们使用电子表格中的数据创建一个html表格: 奇怪的符号是什么;x3e代替Javascript 从.gs函数中获取一个html表,并在.html正文中调用它,javascript,html,google-apps-script,Javascript,Html,Google Apps Script,有人能帮助我理解如何调用专用于GmailApp.sendmail()的.HTML正文中的.gs函数生成的HTML表吗? 以下是一个例子: 一,。首先,我们使用电子表格中的数据创建一个html表格: 奇怪的符号是什么;x3e代替?试试这个(我的第一个评论): 尝试而不是,并删除htmlTemplate.tableDHL=createTableDHL() 或 直接在html文件中尝试此模式: <table> <? for (var i = 0; i < da
?试试这个(我的第一个评论):
尝试
而不是
,并删除htmlTemplate.tableDHL=createTableDHL()代码>
或
直接在html文件中尝试此模式:
<table>
<? for (var i = 0; i < data.length; i++) { ?>
<tr>
<? for (var j = 0; j < data[i].length; j++) { ?>
<td><?= data[i][j] ?></td>
<? } ?>
</tr>
<? } ?>
</table>
第三种解决方案:
尝试
而不是
并删除htmlTemplate.tableDHL=createTableDHL()代码>不,第一个选项不起作用。仍在消息中获取代码。看起来像:亲爱的,今天交货:日期牌号码Q包裹数量2011年10月11日Friekurp85/ETMWC662 67511/10/2019Fridz FP20/DL 5334P2 298检查我的编辑(第三个解决方案)并使用检查。innerHTML
Too建议的解决方案不起作用。我想,由于mBody
返回的HTML代码不合适,如果你想复制你的应用程序脚本项目并与我共享,我可以看一看是的,当然!你想让我怎么把密码发给你?在私人信息还是在这里?
<!DOCTYPE html>
<html>
<head>
<base target="_top">
</head>
<body>
<p style=font-family:verdana,sans-serif > Dear All,<br><br>
<span style=background-color:rgb(217,234,211)><b>Delivery for today:</b></span></p>
<?= tableDHL ?>
<p style=font-family:verdana,sans-serif > Trucks should arrive till <b>4:30 PM</b>.<br>
More details can be sent to you by our suppliers.<br><br>
<span style=background-color:rgb(207,226,243)><b>Forecast:</b></span><br>
<?= dayDelivery ?> we are planning to deliver about <b> <?= plansLow ?> - <?= plansHigh ?> parcels.</b><br><br>
<span style=background-color:rgb(255,242,204)><b>Returns:</b></span><br>
Tomorrow we are planning to pick up our returned packages by listed trucks:</p>
<?= returns ?> <?= monReturns ?>
</body>
</html>
function sendEmailsDHL(){
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("B2C DE");
var today = Utilities.formatDate(new Date(), "UTC", "dd/MM/yyyy");
var data = sheet.getDataRange().getDisplayValues(); //We get all the values from A to D and from row 2 to the last one.
var add1day = 1000 * 60 * 60 * 24;
var add3days = 1000 * 60 * 60 * 24*3;
var today2 = new Date();
var tomorrow = Utilities.formatDate(new Date(today2.getTime() + add1day), "UTC", "dd/MM/yyyy");
var Mon = Utilities.formatDate(new Date(today2.getTime() + add3days), "UTC", "dd/MM/yyyy");
var plansLow = 0
for (i = 0; i < data.length; i++){
if (Utilities.formatDate(new Date(), "UTC", "EEE") == "Fri"){
if (data[i][0] == Mon && data[i][3] == "returns" && data[i][4] == "NL"){
var NLmonRet = data[i][2];
}
if (data[i][0] == Mon && data[i][3] ==""){
plansLow += 2000;
}
}else{
if (data[i][0] == tomorrow && data[i][3] ==""){
plansLow += 2000;
}
}
}
var plansHigh = Number(plansLow) + 1500;
if (Utilities.formatDate(new Date(), "UTC", "EEE") == "Fri"){
var dayDelivery = "On Monday";
var MonReturns = "<br>On Monday we are planning to pick up our returned packages by listed trucks:<br>" + NLmonRet;
}else{
var dayDelivery = "Tomorrow";
var MonReturns = "";
}
var htmlTemplate = HtmlService.createTemplateFromFile("message");
htmlTemplate.tableDHL = createTableDHL();
htmlTemplate.dayDelivery = dayDelivery;
htmlTemplate.plansLow = plansLow;
htmlTemplate.plansHigh = plansHigh;
htmlTemplate.returns = truckReturns();
htmlTemplate.monReturns = MonReturns;
var mBody = htmlTemplate.evaluate().getContent();
Logger.log(mBody)
GmailApp.sendEmail(
'xxxxx@gmail.com', //You can put as many emails you want
'prealert ' + today,
'',
{ htmlBody: mBody });
}
<!DOCTYPE html>
<html>
<head>
<base target="_top">
</head>
<body>
<p style="font-family:verdana,sans-serif" > Dear All,<br><br>
<span style="background-color:rgb(217,234,211)"><b>Delivery for today:</b></span></p>
<div onLoad="this.innerHTML = '\x3ctable border-collapse=collapse\x3e\x3ctr height=50 style=background-color:rgb\(207,226,243\)\x3e\x3cth\x3eDate\x3c\/th\x3e\x3cth width=50\x3eDay\x3c\/th\x3e\x3cth width=200\x3ePlate numbers\x3c\/th\x3e\x3cth\x3eQ-ty of parcels\x3c\/th\x3e\x3c\/tr\x3e\x3ctr\x3e\x3ctd align=center\x3e14\/10\/2019\x3c\/td\x3e\x3ctd align=center\x3eMon\x3c\/td\x3e\x3ctd align=center\x3eEKURP85\/ETMWC66\x3c\/td\x3e\x3ctd align=center\x3e2 675\x3c\/td\x3e\x3c\/tr\x3e\x3ctr\x3e\x3ctd align=center\x3e14\/10\/2019\x3c\/td\x3e\x3ctd align=center\x3eMon\x3c\/td\x3e\x3ctd align=center\x3eDDZ FP20\/ DL 5334P\x3c\/td\x3e\x3ctd align=center\x3e2 298\x3c\/td\x3e\x3c\/tr\x3e\x3c\/table\x3e'"></div>
<p style="font-family:verdana,sans-serif" > Trucks should arrive till <b>4:30 PM</b>.<br>
More details can be sent to you by our suppliers.<br><br>
<span style="background-color:rgb(207,226,243)"><b>Forecast:</b></span><br>
Tomorrow we are planning to deliver about <b> 6000 - 7500 parcels.</b><br><br>
<span style="background-color:rgb(255,242,204)"><b>Returns:</b></span><br>
Tomorrow we are planning to pick up our returned packages by listed trucks:</p>
<table border=0><tr><td>EKURP85/ETMWC66</td></tr></table>
</body>
</html>
<table>
<? for (var i = 0; i < data.length; i++) { ?>
<tr>
<? for (var j = 0; j < data[i].length; j++) { ?>
<td><?= data[i][j] ?></td>
<? } ?>
</tr>
<? } ?>
</table>