![](/img/trans.png)
[英]How to parse JSON in Google Apps Script for Google Spreadsheet
[英]How to send email according to spreadsheet dates in google apps script?
谷歌驅動器文件夾中有五個電子表格將數據發送到一封電子郵件。
到目前為止,電子表格中的所有數據都將發送到電子郵件。 如何按日期對電子表格進行排序,以便只發送最后四個電子表格數據。 這些是我的電子表格的名稱:1. 2018 年 12 月工作簿 2. 2019 年 1 月工作簿 3. 2019 年 2 月工作簿 4. 2019 年 3 月工作簿 5. 2019 年 4 月工作簿
function checkSalesss(){
var file, files =
DriveApp.getFolderById("17Si9n3Uzf1yF6sGWaT2VygxLfPMnUgrE")
.getFilesByType(MimeType.GOOGLE_SHEETS)
var body = ''; // Added
var subject = []; // Added
while (files.hasNext()) {
file = files.next();
var activeSpreadSheet = SpreadsheetApp.open(file);
var sheets = activeSpreadSheet.getSheets();
//loop through sheets to look for value
for (var sheetIndex = 0; sheetIndex < sheets.length; sheetIndex++) {
var sheet = sheets[sheetIndex];
var data = sheet.getDataRange().getValues();
var resultArr = [];
//To Loop through the whole data Rows
for (var i=1;i<data.length;i++) {
//Takes columns from L to S (To loop through the Columns)
for (var j=11;j<19;j++) {
var cellVal = data[i][j];
if (cellVal > 0) {
resultArr.push([data[i][0],data[0][j],cellVal]);
}
}
}
if (resultArr.length>0) {
var spreadsheetName = activeSpreadSheet.getName(); // Added
subject.push(spreadsheetName);
body += "<br>" + "<b>"+ sheet.getName() + "(" + spreadsheetName +
")" + "</b>" + "<br>";
for (var m=0;m<resultArr.length;m++) {
body+= "For Part No "+resultArr[m][0].toString()+" and Month
"+resultArr[m][1].toString()+", Value is "+resultArr[m][2].toString()+"
<br>";
}
}
}
}
//send email
if (subject.length > 0) {
var s = "Alert " + " " + subject.join(",") + " " + " >6MO"; // Added
MailApp.sendEmail({to: "abc@gmail.com",subject:"Alert", htmlBody:
body});
}
}
我希望將 2019 年 1 月、2019 年 2 月、2019 年 3 月、2019 年 4 月的電子表格數據發送到電子郵件
如果我的理解是正確的,這個修改怎么樣?
spreadsheetNames
包括要選擇電子表格的名稱。if (spreadsheetNames.some(function(e) {return e == spreadsheetName})) {}
的腳本。function checkSales(){
var spreadsheetNames = [ // Added
// "Dec 2018 Workbook", // This was commented out. So the following 4 Spreadsheets are used for creating the data.
"Jan 2019 Workbook",
"Feb 2019 Workbook",
"March 2019 Workbook",
"April 2019 Workbook"
];
var file, files = DriveApp.getFolderById("17Si9n3Uzf1yF6sGWaT2VygxLfPMnUgrE").getFilesByType(MimeType.GOOGLE_SHEETS);
var body = '';
var subject = [];
while (files.hasNext()) {
file = files.next();
var activeSpreadSheet = SpreadsheetApp.open(file);
var spreadsheetName = activeSpreadSheet.getName(); // Added
if (spreadsheetNames.some(function(e) {return e == spreadsheetName})) { // Added
var sheets = activeSpreadSheet.getSheets();
for (var sheetIndex = 0; sheetIndex < sheets.length; sheetIndex++) {
var sheet = sheets[sheetIndex];
var data = sheet.getDataRange().getValues();
var resultArr = [];
for (var i=1;i<data.length;i++) {
for (var j=11;j<19;j++) {
var cellVal = data[i][j];
if (cellVal > 0) {
resultArr.push([data[i][0],data[0][j],cellVal]);
}
}
}
if (resultArr.length>0) {
// var spreadsheetName = activeSpreadSheet.getName(); // removed
subject.push(spreadsheetName);
body += "<br>" + "<b>"+ sheet.getName() + "(" + spreadsheetName + ")" + "</b>" + "<br>";
for (var m=0;m<resultArr.length;m++) {
body+= "For Part No "+resultArr[m][0].toString()+" and Month "+resultArr[m][1].toString()+", Value is "+resultArr[m][2].toString()+" <br>";
}
}
}
}
}
if (subject.length > 0) {
var s = "Alert " + " " + subject.join(",") + " " + " >6MO"; // Added
MailApp.sendEmail({to: "abc@gmail.com",subject:"Alert", htmlBody: body});
}
}
last four spreadsheet data
,我認為那些可能是“Jan 2019 Workbook”、“Feb 2019 Workbook”、“March 2019 Workbook”、“April 2019 Workbook”。 如果要修改它們,請修改上述腳本的spreadsheetNames
數組。如果我誤解了您的問題並且這不是您想要的結果,我深表歉意。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.