Apps脚本错误-找不到方法getRange(number,number,(class),number)

时间:2019-02-20 10:46:23

标签: google-apps-script google-sheets

我编写了一个自定义Google Apps脚本,该脚本将从API的数组2中提取一些数据(宽2列,长50-100行,但有所不同),将其解析为JSON,然后粘贴到Google工作表中

我可以从编辑器运行脚本,它可以正常运行。但是,当我尝试从自定义菜单运行它或运行调试器时,出现以下错误:

'无法找到方法getRange(number,number,(class),number)(第43行)'

第43行是代码的最后一行。

sheet.getRange(3,1,dataSet.length,2).setValues(rows);

似乎问题在于getRange无法使用数据集长度的变量(行数)来设置要粘贴数据的范围内要使用的行数。

我无法解决该问题-其他人可以看到我在做什么吗?感谢您的关注。

//custom menu
function onOpen() {
  var ui = SpreadsheetApp.getUi();
  ui.createMenu('XXXX Data')
      .addItem('Credit Limits','CREDITLIMITS')
      .addToUi();
}

function CREDITLIMITS() {
  var ss = SpreadsheetApp.getActiveSpreadsheet(); //get active spreadsheet
  var sheet = ss.getActiveSheet();
//  var sheet = ss.getSheetByName('data'); //get sheet by name from active spreadsheet


  // URL and params for the API
  var USERNAME = 'XXXXXXX';
  var PASSWORD = 'XXXXXXXXXXXXX';
  var url = 'https://api.XXXX.com/api/v1/XXX/?where=type=%27XXXXXXX%27';  //   var url="http://example.com/feeds?type=json"; // Paste your JSON URL here
  var authHeader = 'Basic ' + Utilities.base64Encode(USERNAME + ':' + PASSWORD);  
  var params = {'method': 'GET','muteHttpExceptions': true,'headers': {'Authorization': authHeader,} };

  //call the XXXX API
  var response = UrlFetchApp.fetch(url, params); // get api endpoint
  var json = response.getContentText(); // get the response content as text
  var dataAll = JSON.parse(json); //parse text into json
  var dataSet = dataAll;

//create empty array to hold data points
var rows=[],
data; 

//loop over the retrun events
  for (i=0; i < dataSet.length; i++)  {
   data = dataSet[i];
//push a row of data as 2d array   
    rows.push([data.company, data.creditLimit]);
  }

// clear any previous content
    sheet.getRange(1,1,500,10).clearContent();

// write data to sheet
   sheet.getRange(3,1,dataSet.length,2).setValues(rows);
}

0 个答案:

没有答案