几个月前,在人们回复我的帖子的帮助下,我设法编写了一个脚本,该脚本使我能够从Google表格的特定单元格中获取数据,并将该数据放入HTML模板并通过Gmail发送(全部在应用脚本代码中)。那很棒!但是我一直在尝试制作相同的脚本,但是这次我收集的数据是循环添加到HTML上的(因为我想分批发送电子邮件(现在我每次想点击一次按钮发送电子邮件,我有很多行要发送)。
主要问题是,为了用我的数据填充HTML,我需要从HMTL调用一个函数,当我需要提取特定Cell的值(例如:A1)但现在我需要数据时,这很酷循环指定的行的编号(例如:首先是A1,然后是A2)。该函数可以使用我需要的行(例如:getName(i),其中i是该行,但是由于我是从HTML调用函数的,所以我不知道如何将i传递给HTML来调用该函数。 '我陷入了循环。
获取单元格值的函数:
function getname() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName("Sheet2"); // the sheet I'm working on
var name = sheet.getRange("A1");
return name.getValues()[0]
}
发送邮件的功能:
function sendHTMLmail() {
var htmlBody = HtmlService.createTemplateFromFile('test').evaluate().getContent();
MailApp.sendEmail({
to: "test@gmail.com",
name: "test",
subject: "test",
htmlBody: htmlBody,
});
}
获取并打印名称的HTML代码
<!DOCTYPE html>
<html>
<head>
<base target="_top">
</head>
<body>
<? var name = getname(); ?>
Hi <?= name ?>
</body>
</html>
我想改善的循环
function doGet() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sss = ss.getSheetByName("Sheet1");
for( i = 1 ; i < 4 ; i++) {
var htmlBody = HtmlService.createTemplateFromFile('Prueba').evaluate().getContent();
MailApp.sendEmail({
to: "test@gmail.com",
name: "test",
subject: "test",
htmlBody: htmlBody,
});
}
}