Google Sheet API (JS): не записывать пустые ячейки - PullRequest
1 голос
/ 10 февраля 2020

Не знаете, как я могу обойти пустые клетки ...? В пустых ячейках пишется "undefined".

row [0] == "" не кажется хорошим.

Заранее спасибо.

function appendPre(message) {
    var pre = document.getElementById('content');
    var textContent = document.createTextNode(message + '\n'+'\n');
    pre.appendChild(textContent);
  }

  function listMajors() {
    gapi.client.sheets.spreadsheets.values.get({
      spreadsheetId: '1gHFaUxQX3ZQ7-nJ7ikviLojgNa06xJjFR9LSYzjFsLY',
      range: 'Feuille 1!A2:A99',
    }).then(function(response) {
      var range = response.result;
      if (range.values.length > 0) {
        for (i = 0 ; i < range.values.length; i++) {
          var row = range.values[i];
          while (row[0] == ""){
            i++;
          }
          appendPre(row[0]);

        }
      }
      else {
        appendPre();
      }
    }, function(response) {
      appendPre();
    });
  }

1 Ответ

1 голос
/ 10 февраля 2020

Проблема:

  • Бланки API не возвращаются. Если запрашивается A1:A3 и A2 пусто, возвращаемый массив равен [["A1"],[],["A3"]]. Итак, row[0] - это undefined и undefined! == "".

Решения:

  • Проверьте длину row перед индексирование в него

    if (row.length) appendPre(row[0]);
    
  • В качестве альтернативы, предварительно отфильтруйте значения:

    let values = range.values;
    values.filter(row=>row.length)
    
...