Как петля данные и установить его, как это происходит

Я попытался установить скрипт, так как мой 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);
}

1 ответ

  1. В настоящее время вы всегда перезаписываете старые данные, начиная со второй строки.
    Вы можете перезаписать данные в целом, но не итерацией.

    Вы можете добавить новые данные после старых данных, установив диапазон следующим образом:

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

    И если вы хотите перезаписать старые данные с помощью самого вытягивания, не оставляя никаких старых данных, оставшихся в случае, если вы когда-либо закончите с меньшим количеством строк, которые вы можете поместить

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

    В начале перед запуском цикла с pullJSONвызовом