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

更新适配Sheets v4 API的脚本运行失败,寻求解决方案

问题根因

你当前代码的核心问题是沿用了旧版Sheets v3 API的返回结构解析逻辑,而Sheets v4 API的返回数据结构和v3完全不兼容,核心差异如下:

  • v3 API的结构化数据存放在data.feed.entry字段下,用gsx$[表头名]的格式读取对应列内容
  • v4 API的原始表格数据存放在data.values数组中,数组的每一项对应表格的一行,行数组的子项按顺序对应每一列的内容,默认第一行是表头字段

前置检查项

先确认以下配置正确,否则接口会直接返回报错:

  • 目标谷歌表格已设置为「任何知道链接的用户可查看」
  • 你使用的API Key已在谷歌云控制台开启了Google Sheets API的调用权限
  • 请求URL中的工作表名Section-A和实际表格的工作表名完全一致(大小写、特殊符号均要匹配)

修正后的参考代码

jQuery(document).ready(function() {
  setTimeout(function() {
    jQuery.getJSON(
      "https://sheets.googleapis.com/v4/spreadsheets/1nt-5-zruTuJPOAfRbCgy9sJA2CCVvzo0sCPEPx0uxEk/values/Section-A?alt=json&key=AIzaSyCJuQ_bsRn1SVyfI8rkeq0RUnSpecP7IYk",
      function(data) {
        // v4返回的values数组第一行为表头,后续为实际数据行
        const rows = data.values;
        // 没有有效数据直接返回
        if (!rows || rows.length < 2) return;
        // 先获取表头,和你表格第一行的表头名对应
        const headers = rows[0].map(header => header.trim().toLowerCase());
        // 从第二行开始遍历数据
        for (let i = 1; i < rows.length; i++) {
          const row = rows[i];
          // 按表头索引取对应列的值
          const perc = row[headers.indexOf('changepct')] || '';
          const cap = row[headers.indexOf('marketcap')] || '';
          const date = row[headers.indexOf('tradetime')] || '';
          const price = row[headers.indexOf('price')] || '';

          document.getElementById('perc').innerHTML += perc;
          document.getElementById('capitalizzazione').innerHTML += cap;
          document.getElementById('dataTrade').innerHTML += date;
          document.getElementById('price').innerHTML += price;
        }
      }
    ).fail(function(err) {
      // 此处可打印错误信息方便排查接口问题
      console.log('接口请求报错:', err);
    });
  }, 1000);
});

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 05:09:02