Чтение простого текста в листе Google в массив с помощью скрипта Google Apps - PullRequest
0 голосов
/ 29 января 2019

Скрипт Google Sheet Script, который я вставлю ниже, просматривает листы наших групп и сравнивает информацию в ячейках с критериями.Если критерии не выполнены, ячейка подсвечивается и информация помещается в массив, который отправляется по электронной почте.

У меня есть несколько скриптов, очень похожих на этот, которые работают нормально, но когда я пытаюсь прочитать содержимое ячейки, которая может содержать «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);

Вывод: undefined, Fail

лист, с которого я регистрирую эту информацию, выглядит примерно так

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

Скрипт просматривает ячейки, выделяет их и сохраняет все СОСТОЯНИЕ СБОЙ ПОВЕРХНОСТИ в массиве.Если он уже выделен, он будет пропущен, и если ни один из них не будет помещен в массив, электронное письмо не отправляется, поэтому отправляется только новая информация.Я контролирую, сколько отправлено в настоящее время, и это прекрасно работает, хотя я не знаю, как форматировать вывод.

В неопределенной части должно отображаться то, что читается как "EPFBC4", но в данный момент отображается "неопределенное"

Спасибо, Таннер Осборн

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...