Получить динамический диапазон в листах Google - PullRequest
0 голосов
/ 27 мая 2019

У меня есть функция, которая берет диапазон таблицы и затем отправляет его по электронной почте каждый день. В настоящее время он настроен на получение фиксированного диапазона (G2: H38). В настоящее время этот процесс работает, но каждый день, когда я отправляю электронное письмо, у меня есть несколько пустых ячеек, которые также отправляются. Я новичок в этом и надеюсь, что кто-то может помочь мне решить это.

var rowData = data[i];
    var emailAddress = "example@gmail.com";
    var recipient = rowData[0];
    var yesterdayDate = rowData[5];
    var message1 = rowData[2] + yesterdayDate;
    var message2 = rowData[3]
    var sh = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
    var data = sh.getRange("G2:H38").getValues();
    //var htmltable =[];
    var TABLEFORMAT = 'cellspacing="2" cellpadding="2" dir="ltr" border="1" style="width:100%;display:table;max-width:400px;table-layout:fixed;font-size:10pt;font-family:arial,sans,sans-serif;border-collapse:collapse;border:1px solid #ccc;font-weight:normal;color:black;background-color:white;text-align:center;text-decoration:none;font-style:normal;margin-top:30px'
    var htmltable = '<table ' + TABLEFORMAT +' ">';
    var tablehead = 'style="background-color:#6aa84f;color:white;';

      for (row = 0; row<data.length; row++){
        htmltable += '<tr>';
      for (col = 0 ;col<data[row].length; col++){
        if (data[row][col] === "" || 0) {htmltable += '<td>' + '' + '</td>';} 
          else
            if (row === 0)  {
              htmltable += '<th ' + tablehead +' ">' + data[row][col] + '</th>';
            }

          else {htmltable += '<td>' + data[row][col] + '</td>';}
      }
     htmltable += '</tr>';
      }

1 Ответ

0 голосов
/ 27 мая 2019

Во втором цикле for первое условие перехватывает и добавляет пустые ячейки таблицы для значений ячеек, в которых нет данных. Добавление проверки 0 здесь не поможет, так как вы должны проверить data[row][col]===0, если хотите сопоставить значения, которые равны 0, а не ||0.

В противном случае ваш код работает так, как задумано, и тестирование его на примере Spreadsheet работает - «если ячейка в Range пуста, добавьте пустую ячейку в таблицу». Вы хотите отфильтровать все пустые ячейки?

Обновление

Я до сих пор не уверен, почему вы хотите отфильтровывать пустые ячейки из HtmlTable, но если вы хотите, чтобы отображались только ячейки с данными, немного измените ваш оператор if...else, чтобы учесть это:

if (row===0&&data[0][col]!=='')  { //filter out empty header cells;
  htmltable += '<th>' + data[row][col] + '</th>';
}else if(data[row][col]!=='') { //filter out empty entries cells
  htmltable += '<td style="border:1px solid black;">' + data[row][col] + '</td>';
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...