Я создал шаблон электронной почты на другой вкладке в листах. В этом шаблоне, по сути, перечислены оценки многих сданных экзаменов. Я полагаю, что это будет так же просто, как создать простой HTML-шаблон, но он не работает.
это в настоящее время находится в ячейке как переменная messageBody1
Hello {Name},
Your requested grades for the {For} for the language {Lang Exam 1}, and exam {Exam 1} are below.
Exam name: {Exam 1}, # of grades: {Num Exam 1}
Your grades are
<html>
<head>
<script>
</script>
</head>
<body>
<ul>
<li> {data}
</li>
</ul>
</body>
</html>
Где {данные} имеют A,B,C,D,F,A,B.
Я хотел бы, чтобы он был указан вместо этого как
А
Б
С
Я пробовал ниже, но, похоже, в Gmail не отображаются оценки.
var messageBody1 = bodyTemplateExam1LangExam1.replace(/{Name}/g,Name).replace(/{data}/g,data).replace("{For}",For).replace(/{Exam 1}/g,Exam1).replace(/{Lang Exam 1}/g,LangExam1).replace(/{Num Exam 1}/g,NumExam2);
if (Exam1 == "Math 2" && LangExam1 == "Spanish"){
MailApp.sendEmail(Email,subjectLine, messageBody1);}






Предполагая, что ваш ввод данных представляет собой строку, определенную как «A, B, C, D, F, A, B».
Если вы хотите отобразить ваши {данные} в виде списка внутри вашего html-тела, способ сделать это — назначить «данные» массиву, при этом каждая запись данных, разделенная запятыми, будет назначена элементу массива. Затем вы прокручиваете массив и заключаете каждый из элементов в теги <li> </li> и добавляете все заключенные элементы в строку, которая заменит ваш заполнитель {data}. Вот как может выглядеть код:
function myFunction() {
var bodyTemplateExam1LangExam1=SpreadsheetApp.getActiveSpreadsheet().getActiveSheet().getRange('A1').getValue();
var Name = "testname";
var data = "A,B,C,D,F,A,B";
var For = "homework";
var Exam1 = "Math 2";
var LangExam1 = "Spanish";
var NumExam2=2;
var Email = "[email protected]";
var subjectLine = "exam results";
var dataArray=data.split(",");
var list = "";
dataArray.forEach(function(element)
list=list+"<li>"+element+"</li>";
})
var messageBody1 = bodyTemplateExam1LangExam1.replace(/{Name}/g,Name).replace(/{data}/g,list).replace("{For}",For).replace(/{Exam 1}/g,Exam1).replace(/{Lang Exam 1}/g,LangExam1).replace(/{Num Exam 1}/g,NumExam2);
if (Exam1 == "Math 2" && LangExam1 == "Spanish")
Logger.log(messageBody1)
MailApp.sendEmail
({
to: Email,
subject: subjectLine,
htmlBody: messageBody1
})
}
}
Со следующим содержимым, содержащимся в ячейке A1:
<p>
Hello {Name},
Your requested grades for the {For} for the language {Lang Exam 1}, and exam {Exam1} are below.
Exam name: {Exam 1}, # of grades: {Num Exam 1}
Your grades are
<ul>
{data}
</ul>
</p>
(Вам не нужна полная запись, и вы можете оставить большую часть неиспользуемых тегов).
Читать минимальный воспроизводимый пример. Ваш код не воспроизводится. Предоставьте фиктивные данные для всех необъявленных переменных в вашем коде, особенно
data.