使用循环为 MailApp 构建消息
Using loops to build a message for MailApp
我有一个程序逐行执行电子表格,如果 TotalSOH <= MinSOH 则构建两个数组,即:PalletNo[j] & SOH[j]。
我可以通过手动循环数组在我的 MailApp 函数中 return PalletNo[j] & SOH[j] 的每个索引作为消息(参考下面代码中的“消息”变量)所以我知道基本代码有效,但是我想创建一个循环以便它为我执行此操作,因为将来数组可能比两个元素大很多。
我希望消息被阅读(每一行);
托盘号[0] SOH[0]
托盘号[1] SOH[1]
PalletNo[2] SOH[2],等等,等等
有人可以帮忙吗?即使是一些方向也很好,不一定是答案。
我曾尝试在“message”变量中甚至在 MailApp 函数本身中创建一个 for 循环,但这会产生语法问题。
谢谢你的帮助,克里斯。
function LowT4KANBANSOHEmail()
{
var ss = SpreadsheetApp.getActive();
var sheet = ss.getSheetByName ('T4 Pallet (SOH) (Power Bi)');
var now = new Date();
var startRow = 1;
var numRows = sheet.getLastRow();
var dataRange = sheet.getRange(startRow, 1, numRows, sheet.getLastColumn());
var data = dataRange.getValues();
var j = 0;
var PalletNo = Array();
var SOH = Array();
for (var i = 0; i < data.length; ++i)
{
var row = data[i];
var TotalSOH = row[3];
var MinSOH = row [4];
if (TotalSOH <= MinSOH){
PalletNo[j] = row[0];
SOH[j] = row[3];
j=j+1;
}else
{
}
}//End of for loop
var message =
PalletNo[0]+
" (x"+
SOH[0]+
")"+
"\n"+
PalletNo[1]+
" (x"+
SOH[1]+
")"+
"\n";
MailApp.sendEmail("emailaddress",
"Subject",
message
);
}//End of function
我已经解决了我自己的问题。
我也是 Javascript 和这个论坛的新手,我想我应该将答案反馈给社区以供将来参考,以防其他人遇到类似问题。作为一个初学者,很难知道如何贡献,而不是觉得你总是在问问题。
我创建了一个新数组,每个 element/index 代表最终消息中的行号。为了拆分每一行,我使用了 .join 功能。
代码在下面(部分语法可能有误,因为我在删除机密信息时可能不小心删除了一些);
function Answer()
{
var ss = SpreadsheetApp.getActive();
var sheet = ss.getSheetByName ('Spreadsheet');
var now = new Date();
var startRow = 1;
var numRows = sheet.getLastRow();
var dataRange = sheet.getRange(startRow, 1, numRows, sheet.getLastColumn());
var data = dataRange.getValues();
var j = 0;
var PalletNo = Array();
var SOH = Array();
var PalletNoSOH = Array();
for (var i = 0; i < data.length; ++i)
{
var row = data[i];
var TotalSOH = row[3];
var MinSOH = row [4];
if (TotalSOH <= MinSOH){
PalletNo[j] = row[0];
SOH[j] = row[3];
PalletNoSOH[j] = (PalletNo[j].toString() + " (x" + SOH[j].toString() + ")");
j=j+1;
}else
{
}
}//End of for loop
MailApp.sendEmail("emailaddress",
"Subject",
PalletNoSOH.join("\n")
);
}//End of function
我有一个程序逐行执行电子表格,如果 TotalSOH <= MinSOH 则构建两个数组,即:PalletNo[j] & SOH[j]。 我可以通过手动循环数组在我的 MailApp 函数中 return PalletNo[j] & SOH[j] 的每个索引作为消息(参考下面代码中的“消息”变量)所以我知道基本代码有效,但是我想创建一个循环以便它为我执行此操作,因为将来数组可能比两个元素大很多。
我希望消息被阅读(每一行);
托盘号[0] SOH[0]
托盘号[1] SOH[1]
PalletNo[2] SOH[2],等等,等等
有人可以帮忙吗?即使是一些方向也很好,不一定是答案。
我曾尝试在“message”变量中甚至在 MailApp 函数本身中创建一个 for 循环,但这会产生语法问题。
谢谢你的帮助,克里斯。
function LowT4KANBANSOHEmail()
{
var ss = SpreadsheetApp.getActive();
var sheet = ss.getSheetByName ('T4 Pallet (SOH) (Power Bi)');
var now = new Date();
var startRow = 1;
var numRows = sheet.getLastRow();
var dataRange = sheet.getRange(startRow, 1, numRows, sheet.getLastColumn());
var data = dataRange.getValues();
var j = 0;
var PalletNo = Array();
var SOH = Array();
for (var i = 0; i < data.length; ++i)
{
var row = data[i];
var TotalSOH = row[3];
var MinSOH = row [4];
if (TotalSOH <= MinSOH){
PalletNo[j] = row[0];
SOH[j] = row[3];
j=j+1;
}else
{
}
}//End of for loop
var message =
PalletNo[0]+
" (x"+
SOH[0]+
")"+
"\n"+
PalletNo[1]+
" (x"+
SOH[1]+
")"+
"\n";
MailApp.sendEmail("emailaddress",
"Subject",
message
);
}//End of function
我已经解决了我自己的问题。
我也是 Javascript 和这个论坛的新手,我想我应该将答案反馈给社区以供将来参考,以防其他人遇到类似问题。作为一个初学者,很难知道如何贡献,而不是觉得你总是在问问题。
我创建了一个新数组,每个 element/index 代表最终消息中的行号。为了拆分每一行,我使用了 .join 功能。
代码在下面(部分语法可能有误,因为我在删除机密信息时可能不小心删除了一些);
function Answer()
{
var ss = SpreadsheetApp.getActive();
var sheet = ss.getSheetByName ('Spreadsheet');
var now = new Date();
var startRow = 1;
var numRows = sheet.getLastRow();
var dataRange = sheet.getRange(startRow, 1, numRows, sheet.getLastColumn());
var data = dataRange.getValues();
var j = 0;
var PalletNo = Array();
var SOH = Array();
var PalletNoSOH = Array();
for (var i = 0; i < data.length; ++i)
{
var row = data[i];
var TotalSOH = row[3];
var MinSOH = row [4];
if (TotalSOH <= MinSOH){
PalletNo[j] = row[0];
SOH[j] = row[3];
PalletNoSOH[j] = (PalletNo[j].toString() + " (x" + SOH[j].toString() + ")");
j=j+1;
}else
{
}
}//End of for loop
MailApp.sendEmail("emailaddress",
"Subject",
PalletNoSOH.join("\n")
);
}//End of function