данные, отображаемые на моем листе Google, оказались неопределенными - PullRequest
0 голосов
/ 14 марта 2019

Я пытаюсь создать приложение для Android, которое использует Google лист в качестве базы данных. Но когда я ввожу данные в гугл лист, он становится неопределенным. надеюсь, кто-то может помочь мне исправить это

код с неопределенным значением

function read_all_value(request){


  var ss =SpreadsheetApp.openById(SCRIPT_PROP.getProperty("key"));

  var output  = ContentService.createTextOutput(),
      data    = {};
  //Note : here sheet is sheet name , don't get confuse with other operation 
      var sheet="sheet1";

  data.records = readData_(ss, sheet);


  var callback = request.parameters.callback;

  if (callback === undefined) {
    output.setContent(JSON.stringify(data));
  } else {
    output.setContent(callback + "(" + JSON.stringify(data) + ")");
  }
  output.setMimeType(ContentService.MimeType.JAVASCRIPT);

  return output;
}

этот код тоже

function readData_(ss, sheetname, properties) {



 if (typeof properties == "undefined") {
    properties = getHeaderRow_(ss, sheetname);
    properties = properties.map(function(p) { return p.replace(/\s+/g, '_'); });
  }

  var rows = getDataRows_(ss, sheetname),
      data = [];

  for (var r = 0, l = rows.length; r < l; r++) {
    var row     = rows[r],
        record  = {};

    for (var p in properties) {
      record[properties[p]] = row[p];
    }

    data.push(record);

  }
  return data;
}



function getDataRows_(ss, sheetname) {
  var sh = ss.getSheetByName(sheetname);

  return sh.getRange(2, 1, sh.getLastRow() - 1, sh.getLastColumn()).getValues();
}


function getHeaderRow_(ss, sheetname) {
  var sh = ss.getSheetByName(sheetname);

  return sh.getRange(1, 1, 1, sh.getLastColumn()).getValues()[0];  

}

вот мой гугл лист

https://docs.google.com/spreadsheets/d/1qX61V-xw3IjK8L373iTqlaSN0cf3-eh3zrpDBYHr8JQ/edit?usp=sharing

1 Ответ

0 голосов
/ 14 марта 2019

Измените readData_() код функции ниже -

for (var p in properties) {
  record[properties[p]] = row[p];
}

на этот -

properties.forEach(function(key, i) {
  record[key] = row[i];
});
...