Я создал функцию, которая позволит мне отправлять электронные письма в список контактов через Google Sheets. Письмо будет содержать строку темы и таблицу, содержащую данные из моей электронной таблицы. Проблема, с которой я сталкиваюсь, заключается в том, что таблица HTML отправляет только заголовки и 1 строку данных. Я не могу найти ошибку, которую я сделал.
Таблица будет постоянно увеличиваться, поэтому я хотел бы, чтобы функция электронной почты включала все ячейки, в которых есть данные. Это возможно?
Я адаптировал этот код сценария / HTML из Как отформатировать электронную почту из данных электронной таблицы, используя массивы? , но теперь я застрял, как внести дальнейшие изменения в мои потребности.
function testMail(){
var emails = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Contacts");
var startRow = 2; // First row of data to process
var numRows = 2; // Number of rows to process
// Fetch the range of cells A1:B1
var dataRange = emails.getRange(startRow, 1, numRows, 1);
// Fetch values for each row in the Range.
var data = dataRange.getValues();
for (i in data) {
var row = data[i];
var emailAddress = row[0]; // First column
var subject = "Current list of BGC 4 Acronyms";
var ss = SpreadsheetApp.getActiveSpreadsheet();
var acronym = ss.getSheetByName("Sheet1");
var abbv = acronym.getRange("A5:A50").getValues();
var explan = acronym.getRange("B5:B50").getValues();
var message = composeMessage(abbv,explan);
var messageHTML = composeHtmlMsg(abbv,explan);
Logger.log(messageHTML);
MailApp.sendEmail(emailAddress, subject, message, {'htmlBody':messageHTML});
}
function composeMessage(abbv,explan){
var message = 'Here are the data you submitted :\n'
for(var c=0;c<explan[0].length;++c){
message+='\n'+abbv[0][c]+' : '+explan[0][c]
}
return message;
}
function composeHtmlMsg(abbv,explan){
var message = '<br><br><table style="background-color:lightblue;border-collapse:collapse;" border = 1 cellpadding = 5><th>Acronym</th><th>Explanation</th><tr>'
for(var c=0;c<explan[0].length;++c){
message+='<tr><td>'+abbv[0][c]+'</td><td>'+explan[0][c]+'</td></tr>'
}
return message+'</table>';
}
Ожидаемым результатом является электронное письмо, отправленное на каждый адрес в списке с темой и полной таблицей данных. Что я на самом деле получаю, это