google drive文件夹中有五个电子表格,可将数据发送到一封电子邮件。
到目前为止,电子表格中的所有数据都将发送到电子邮件中。如何按日期对电子表格进行排序,以便仅发送最后四个电子表格数据。 这些是我的电子表格的名称: 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月电子表格数据发送到电子邮件中
答案 0 :(得分:1)
如果我的理解是正确的,那么该修改如何?
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
,我认为它们可能是“ 2019年1月工作簿”,“ 2019年2月工作簿”,“ 2019年3月工作簿”,“ 2019年4月工作簿”。如果要修改它们,请修改上面脚本的spreadsheetNames
的数组。如果我误解了您的问题,而这不是您想要的结果,我深表歉意。