目前,我正在撰寫一個腳本,該腳本檢查一列的值并基于該發送包含另一列資訊的電子郵件。除了一件事之外,一切都完美無缺 - 每個值發送一封電子郵件,我想在一封電子郵件中發送所有值。有人可以幫忙解決這個問題嗎?
const helpsheet = SpreadsheetApp.openById("ID").getSheetByName('Sheet');
const date = helpsheet.getRange(1,10).getValue();
const ss = SpreadsheetApp.openById("ID2");
const sh = ss.getSheetByName('Sheet2');
const data = sh.getRange('A2:c' sh.getLastRow()).getValues();
var recipients = 'EMAIL@EMAIL';
var subject = 'SUBJECT';
data.forEach(r=>{
let overdueValue = r[2];
if (overdueValue > date)
{
let path = r[0];
MailApp.sendEmail({
to: recipients,
subject: subject,
htmlBody: 'Hi guys ' path '!<br><br>Best regards,'
});
}
});
} ```
uj5u.com熱心網友回復:
當然,我無法對此進行測驗,因為第一個我不想給自己發一堆電子郵件,第二個我沒有與您的資料匹配的資料集,但我很確定這會滿足您的需求。我所做的是使用下面的陣列推送方法構建一個通過嗅探測驗的行陣列。然后,當我獲得所有通過的行時,我發送一封電子郵件。
我已經編輯了這篇文章以包含創建 html 表的函式。
function test() {
try {
const helpsheet = SpreadsheetApp.openById("ID").getSheetByName('Sheet');
const date = helpsheet.getRange(1,10).getValue();
const ss = SpreadsheetApp.openById("ID2");
const sh = ss.getSheetByName('Sheet2');
const data = sh.getRange('A2:c' sh.getLastRow()).getValues();
var pre = "Hello";
var post = "Best regards";
var recipients = 'EMAIL@EMAIL';
var subject = 'SUBJECT';
var passed = [];
data.forEach( r => {
let overdueValue = r[2];
if (overdueValue > date) {
passed.push(r);
}
});
if( passed.length > 0 ) { // maybe nothing passed the test
var html = createHTMLfile(true);
html = html.concat("<p>" pre "</p>");
html = html.concat(createTable(passed));
html = html.concat(createHTMLfile());
html = html.concat("<p>" post "</p>");
MailApp.sendEmail( {
to: email,
subject: subject,
htmlBody: html });
};
}
}
catch(err) {
console.log(err);
}
}
我添加了額外的函式來創建表。歡迎您與<style>s 一起玩。
function createHTMLfile(pre) {
if( pre ) {
return "<html><head><style>table, td { border: thin solid black; border-collapse:collapse; text-align:center }</style></head><body>";
}
else {
return "</body></html>";
}
}
function createTable(data) {
try {
var width = 600/data[0].length;
var table = "<table>";
function addCell(value) {
table = table.concat("<td style=width:" width "px>");
table = table.concat(value.toString());
table = table.concat("</td>");
}
function addRow(row) {
table = table.concat("<tr>");
row.forEach( addCell );
table = table.concat("</tr>");
}
data.forEach( addRow )
table = table.concat("</table>");
return table;
}
catch(err) {
console.log(err);
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/435853.html
