我想比較 sheetA 和 SheetB 中的兩個單元格,如下面的螢屏所示,以獲得確切的結果(螢屏)。
我已經運行了一個代碼,但它向我發送了多條訊息(一條訊息中的每個資料行),而不是一條包含所有資訊的訊息(查看結果螢屏)。

這是我使用的代碼:
function myFunction(){
var SheetA = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('SheetA');
var SheetB = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('SheetB');
var lr = SheetA.getLastRow();
for (i = 2; i < lr 1; i ){
var StoreB = SheetB.getRange(i,1).getValue();
var StoreA = SheetA.getRange(2,2).getValue();
var Activity = SheetA.getRange(2,4).getValue();
if (StoreA == StoreB && Activity == 'Actif'){
var order = SheetB.getRange(i,2).getValue();
var date_li = SheetB.getRange(i,4).getValue();
var date = Utilities.formatDate(new Date(date_li), 'Europe/Paris', 'dd/MM/yyyy');
var ref = SheetB.getRange(i,5).getValue();
var desi = SheetB.getRange(i,6).getValue();
var quantity = SheetB.getRange(i,7).getValue();
var livred = SheetB.getRange(i,8).getValue();
var email = SheetA.getRange(2,5).getValue();
const htmlTemplate = HtmlService.createTemplateFromFile('Body');
htmlTemplate.email = email;
htmlTemplate.order = order;
htmlTemplate.date = date;
htmlTemplate.desi = desi;
htmlTemplate.ref = ref;
htmlTemplate.quantity = quantity;
htmlTemplate.livred = livred;
const htmlforEmail = htmlTemplate.evaluate().getContent();
console.log(htmlforEmail)
MailApp.sendEmail(
email,
'Modification date d\'inventaire',
"SVP Ouvrez ce mail avec le support HTML",
{htmlBody: htmlforEmail}
);
}
}
}
uj5u.com熱心網友回復:
這就是我要做的,但它必須更改模板,以便它可以處理二維陣列以將資料放入表中。幸運的是,資料還包括表格的第一行標題。
function myFunction() {
const ss = SpreadsheetApp.getActive();
const sha = ss.getSheetByName('SheetA');//reference
const shb = ss.getSheetByName('SheetB');//order data
const hA = shb.getRange(1,1,1,8).getDisplayValues().flat().splice(2,1);
const vsb = shb.getRange(2, 1, shb.getLastRow() - 1, shb.getLastColumn()).getDisplayValues();
const StoreA = sha.getRange(2, 2).getValue();
const Activity = sha.getRange(2, 4).getValue();
const email = sha.getRange(2, 5).getValue();
const del = { pA: [] };
if (Activity == 'Actif') {
vsb.forEach((r, i) => {
let [st, order, , date_li, date, desi, quantity, livred] = r
if (StoreA == st) {
if (!del.hasOwnProperty(st)) {
del[st] = [];
del[st] = hA;//puts the titles into the data
del[st].push([r[0], r[1], r[3], r[4], r[5], r[6], r[7]]);
del.pA.push(st);
} else {
del[st].push([r[0], r[1], r[3], r[4], r[5], r[6], r[7]]);
}
}
});
const htmlTemplate = HtmlService.createTemplateFromFile('Body');
htmlTemplate.order = del[st];
}
MailApp.sendEmail(email, 'Modification date d\'inventaire', "SVP Ouvrez ce mail avec le support HTML", { htmlBody: htmlTemplate.evaluate().getContent() });
}
uj5u.com熱心網友回復:
嘗試這個
function myFunction(){
var SheetA = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('SheetA');
var SheetB = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('SheetB');
var lr = SheetA.getLastRow();
var order = "";
var date_li = ""
var date = "";
var ref = "";
var desi = "";
var quantity = "";
var livred = "";
var email = "";
for (i = 2; i < lr 1; i ){
var StoreB = SheetB.getRange(i,1).getValue();
var StoreA = SheetA.getRange(2,2).getValue();
var Activity = SheetA.getRange(2,4).getValue();
if (StoreA == StoreB && Activity == 'Actif'){
order = SheetB.getRange(i,2).getValue() '\n';
date_li = SheetB.getRange(i,4).getValue() 'n';
date = Utilities.formatDate(new Date(date_li), 'Europe/Paris', 'dd/MM/yyyy') '\n';
ref = SheetB.getRange(i,5).getValue() '\n';
desi = SheetB.getRange(i,6).getValue() '\n';
quantity = ( SheetB.getRange(i,7).getValue());
livred = SheetB.getRange(i,8).getValue();
email = SheetA.getRange(2,5).getValue();
}
const htmlTemplate = HtmlService.createTemplateFromFile('Body');
htmlTemplate.email = email;
htmlTemplate.order = order;
htmlTemplate.date = date;
htmlTemplate.desi = desi;
htmlTemplate.ref = ref;
htmlTemplate.quantity = quantity;
htmlTemplate.livred = livred;
const htmlforEmail = htmlTemplate.evaluate().getContent();
console.log(htmlforEmail)
MailApp.sendEmail(
email,
'Modification date d\'inventaire',
"SVP Ouvrez ce mail avec le support HTML",
{htmlBody: htmlforEmail}
);
}
}
````
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/376481.html
