首页 > 解决方案 > Google Sheet API (JS):不写空白单元格

问题描述

不知道如何绕过空单元格...?它在空单元格上写“未定义”。

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();
    });
  }

标签: javascriptgoogle-apps-scriptgoogle-sheetsgoogle-sheets-api

解决方案


问题:

  • api 不返回空白。如果A1:A3被请求并且A2为空,则返回的数组是[["A1"],[],["A3"]]. 所以,row[0]isundefinedundefined!==""。

解决方案:

  • 在索引到它之前检查row它的长度

    if (row.length) appendPre(row[0]);
    
  • 或者,预过滤值:

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

推荐阅读