如何循环数据并设置它

How loop the data and set it as it goes on

本文关键字:数据 设置 循环 何循环      更新时间:2023-09-26

我已经尝试并设置脚本,因为我的api返回我2500值的集合,所以我按页面循环数据。我不知道如何设置第一个2500值之后的数据。

谁来帮帮我…

for(var i=0;i<5;i++){
  pullJSON(i);
}
function pullJSON(i) {
    var ss = SpreadsheetApp.getActiveSpreadsheet();
    var sheets = ss.getSheets();
    var sheet = ss.getActiveSheet();

    var url = "http://myapi&_page="+i; // Paste your JSON URL here
    var headers = {
        "Content-Type": "application/json",
        "Authorization": "API Key"
    };
    var options = {
        "method": "GET",
        "headers": headers
    };

    var response = UrlFetchApp.fetch(url, options); // get feed
    var dataAll = JSON.parse(response.getContentText()); //
    var dataSet = dataAll;
    Logger.log(dataAll.length);

    var rows = [],
        data;
    for (i = 0; i < dataSet.length; i++) {

        data = dataSet[i];
        var utcSeconds = data.createDate;
        var d = new Date(0); // The 0 there is the key, which sets the date to the epoch
        d.setUTCSeconds(utcSeconds);
        rows.push([data.id, data.c_customer_id, data.firstName, data.email, d]); //your JSON entities here
    }
    dataRange = sheet.getRange(2, 2, rows.length, 5); // 3 Denotes total number of entites
    dataRange.setValues(rows);
}

目前您总是覆盖从第二行开始的旧数据。您可能希望覆盖整个数据,但不希望通过迭代。

您可以通过如下设置范围将新数据附加在旧数据之后:

dataRange = sheet.getRange(sheet.getLastRow() + 1, 2, rows.length, 5);

如果你想用pull本身覆盖旧数据而不留下任何旧数据以防你最终的行数减少你可以输入

var sheet = SpreadsheetApp.getActiveSheet();
sheet.getRange(2 , 2, sheet.getLastRow(), 5).clear();

在开始使用pullJSON调用运行循环之前