Несколько месяцев назад с помощью людей, отвечающих на мой пост, мне удалось написать скрипт, который позволит мне брать данные из определенных ячеек листа Google и помещать эти данные в шаблон HTML и отправлять их через Gmail.(все в коде скрипта приложения).Это было замечательно!Но я пытался сделать тот же сценарий, но на этот раз собирал данные, чтобы поместить их в HTML с помощью цикла (потому что я хочу, чтобы электронная почта отправлялась партиями (сейчас мне приходится нажимать кнопку каждый раз, когда я хочуотправить электронное письмо, и у меня есть много строк (электронных писем) для отправки).
Основная проблема заключается в том, что для заполнения HTML моими данными мне нужно вызвать функцию из HMTL, что было здорово, когда янеобходимо получить значение определенной ячейки (например, 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,
});
}
}