使用循环为MailApp构建消息

问题描述

我有一个程序,逐行浏览电子表格,如果TotalSOH

我希望阅读消息(每行);

PalletNo [0] SOH [0]

PalletNo [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和该论坛的新手,并认为我应该将答案反馈给社区,以备将来参考,以防其他人遇到类似问题。作为初学者,很难知道如何做出贡献,而不是觉得自己总是在提问。

我创建了一个新数组,每个元素/索引代表最终消息中的行号。为了拆分每行,我使用了.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