使用Google Apps脚本将Google表格中的纯文本读取到数组

时间:2019-01-28 22:22:48

标签: javascript arrays google-apps-script types google-sheets

我将在下面粘贴的Google表格脚本会搜索我们的团队工作表,并将单元格中的信息与条件进行比较。如果不符合条件,则突出显示该单元格,并将信息放入通过电子邮件发送的数组中。

我有一些与此脚本非常相似的脚本,它们工作正常,但是当我尝试读取可能包含“ UMVTC5”的单元格的内容时,存储在数组中的信息是不确定的。

我尝试了.toString方法,但这不适用于undefined类型。任何帮助将不胜感激。

谢谢你, 坦纳

代码:

 function ifstatement() {

  var ss = SpreadsheetApp.getActiveSpreadsheet();//sheet activation
  var sheet = ss.getSheetByName("Testing Pass/Fail");


  var rangeData =sheet.getDataRange();
  var lastColumn = rangeData.getLastColumn();                       
  var lastRow = rangeData.getLastRow();
  var searchRange = sheet.getRange(2,2,lastRow+1,lastColumn+1);   
  var rangeValues = searchRange.getValues();
  var background = searchRange.getBackgrounds();

  var DevolID = [];
  var DevolID_Fail = [];

  var value = "Fail";


  //Loop through the sheet
  for (i=0; i < lastColumn -1; i++){
   for(j=0; j< lastRow -1; j++){

      //If the sheet is less than value and not blank
      if((rangeValues[j][i]) == value && (rangeValues[j][i]) != ""){  


        //Highlight the affected percentage
        sheet.getRange(j+2,i+2).setBackground("#8190ff");

         //If the cell is not blank and the background has not 
         been marked
          if((rangeValues[j][i]!= ""&&background[j][i]!="#8190ff" )){


           //Put the DevolID in the Arrray 
           DevolID_Fail.push(rangeValues[j][i-1]+ " ");


          //Show the Testing Status of the Batch ID 
           DevolID_Fail.push(rangeValues[j][i]+" ");   


           //Log the DevolID Array
           Logger.log('Devol ID_Yield %s :\n ',DevolID_Fail);


               }
           }


      else {
        sheet.getRange(j+2,i+2).setBackground("");
       }; 
    };

  };

if (DevolID_Fail.length > 0){


sendEmail(DevolID_Fail);



};

 DevolID_Fail.length = 0;


};


      function sendEmail(DevolID_Fail){

     var tanner="hi@gmail.com";
     var subject="Yield Threshold Failure ";
     var Log = Logger.getLog();
     var body= "Devol ID Failed Pesticide: "+DevolID_Fail;
     MailApp.sendEmail(tanner,subject,body);

输出:未定义,失败

我从中记录此信息的表看起来像这样

       Batch ID STATUS
       YOLP34    Pass
       DGWBC4    Pass
       RRPFB4    Pass
       YYFBC4    Fail
       EPFBC4    Fail

该脚本将遍历单元格并突出显示并将所有“失败的批次ID状态”保存到阵列中。如果已突出显示,它将被跳过;如果未将其放入数组,则电子邮件不会发送,因此仅发送新信息。我控制当前有多少发送出去,并且效果很好,但是我不知道如何格式化输出。

未定义部分需要显示读取为“ EPFBC4”,但当前显示为“ undefined”

谢谢你, 坦纳·奥斯本(Tanner Osborn)

0 个答案:

没有答案