You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Google AppScript循环导入多页API数据至谷歌表格

解决Google Apps Script循环导入多页JSON到谷歌表格的问题

以下是修改后的代码,实现遍历28页数据并合并导入到同一张表格:

function getBaseJson() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheetByName("Import1");
  
  // 写入表头
  var headerRow = ['JSONs'];
  sheet.getRange(1, 1, 1, headerRow.length).setValues([headerRow]);
  Logger.log("DEBUG: Saved header");

  var tempItemDataArray = [];
  const totalPages = 28; // 明确遍历28页

  // 循环遍历每一页
  for (let page = 1; page <= totalPages; page++) {
    var url = `https://sports.core.api.espn.com/v2/sports/football/leagues/college-football/athletes?limit=1000&active=true&page=${page}`;
    var response = UrlFetchApp.fetch(url);
    var data = response.getContentText();
    var result = JSON.parse(data);

    var myItems = result.items;
    // 提取当前页的所有value并追加到数组
    for (var i = 0; i < myItems.length; i++) {
      for (var [key, value] of Object.entries(myItems[i])) {
        tempItemDataArray.push([value]);
      }
    }
    Logger.log(`DEBUG: 已导入第${page}页数据`);
  }

  // 将所有数据一次性写入表格,起始行是第2行
  if (tempItemDataArray.length > 0) {
    sheet.getRange(2, 1, tempItemDataArray.length, 1).setValues(tempItemDataArray);
    Logger.log("DEBUG: 所有数据已保存完成");
  } else {
    Logger.log("DEBUG: 未获取到任何数据");
  }
}

关键改动说明:

  • 全局数据数组:把tempItemDataArray初始化放在循环外,确保每一页的数据都能追加到同一个数组中,不会被重置
  • 分页循环:用for (let page = 1; page <= totalPages; page++)遍历1到28页,通过模板字符串动态替换URL中的page参数
  • 批量写入:所有页面数据收集完成后,一次性调用setValues写入表格,相比每页单独写入,大幅提升执行效率,减少Google服务调用次数
  • 简化表头写入:直接用sheet.getRange(1, 1, 1, headerRow.length).setValues([headerRow])替代原有的冗余代码,逻辑更清晰

内容的提问来源于stack exchange,提问作者DJ Luke

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 18:44:53