TypeError:无法在我的Google表格应用脚本上读取undefined的属性“ parameters”

时间:2019-03-16 05:43:21

标签: javascript google-apps-script google-sheets google-sheets-api

在发生此错误之前,我在Google表格中从2列增加到5列。然后发生此错误。我是JavaScript的初学者,需要您的帮助

这是我的包含参数的代码

function read_all_value(request) {
  var ss = SpreadsheetApp.openById(SCRIPT_PROP.getProperty("key"));
  var output = ContentService.createTextOutput(),
     data = {};
  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;
}

这是我的readData_,getDataRows_和getHeaderRow_函数

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

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

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

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

    data.push(record);
  }
  return data;
}

function getDataRows_(ss, sheet) {
  var sh = ss.getSheetByName(sheet);
  return sh.getRange(2, 1, sh.getLastRow() - 1, 
      sh.getLastColumn()).getValues();
}

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

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

1 个答案:

答案 0 :(得分:0)

在read_all_value方法中,请求参数为null。 这就是为什么参数未定义的原因。 请检查您从哪里传递请求参数。 我的意思是从哪里调用read_all_value方法。