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

如何通过JavaScript使用Sheets v4 API获取Google Spreadsheet数据为JSON

Google Sheets V4 API JavaScript获取JSON数据方案

你之前使用的是Google Sheets旧版GData API的接口,该接口已经完全废弃下线,现在使用V4版本API获取公开表格数据的方法如下:

前置准备

  • 首先将目标Google Sheet设置为公开可查看:打开表格后点击右上角「共享」,将常规访问权限设置为「知道链接的任何人」,角色选择「查看者」后保存
  • 申请Google Cloud API密钥:登录Google Cloud控制台,搜索并启用「Google Sheets API」,进入凭据页面创建API密钥,复制保存生成的密钥
  • 记录目标表格ID:表格URL中d/与/edit中间的字符串即为表格ID,你原有代码中的1hA4LKZn9yKoqnSzaI6_73GQSj_ZVpB3O0kC93QM98Vs就是表格ID
  • 确认要读取的工作表名称,默认名称为Sheet1,也可自定义填写你实际的工作表名

实现代码

原生Fetch版本(无需引入jQuery)

// 替换为你自己的对应参数
const SPREADSHEET_ID = '你的表格ID';
const API_KEY = '你申请的Google Cloud API密钥';
const SHEET_NAME = 'Sheet1';
const READ_RANGE = 'A:Z'; // 可按需调整读取的列范围

const requestUrl = `https://sheets.googleapis.com/v4/spreadsheets/${SPREADSHEET_ID}/values/${SHEET_NAME}!${READ_RANGE}?key=${API_KEY}`;

fetch(requestUrl)
  .then(res => {
    if (!res.ok) throw new Error('接口请求失败');
    return res.json();
  })
  .then(rawData => {
    // rawData.values为二维数组,第一行默认是表头
    // 以下代码可转换为键值对格式的结构化JSON
    const headers = rawData.values[0];
    const formattedJson = rawData.values.slice(1).map(row => {
      return row.reduce((obj, cellValue, index) => {
        obj[headers[index]] = cellValue;
        return obj;
      }, {});
    });
    // formattedJson即为你需要的JSON格式数据
    console.log(formattedJson);
  })
  .catch(err => console.error('数据获取失败:', err));

jQuery版本(兼容旧项目)

// 替换为你自己的对应参数
const SPREADSHEET_ID = '你的表格ID';
const API_KEY = '你申请的Google Cloud API密钥';
const SHEET_NAME = 'Sheet1';
const READ_RANGE = 'A:Z';

const requestUrl = `https://sheets.googleapis.com/v4/spreadsheets/${SPREADSHEET_ID}/values/${SHEET_NAME}!${READ_RANGE}?key=${API_KEY}`;

$.ajax({
  url: requestUrl,
  dataType: 'json',
  success: function(rawData) {
    const headers = rawData.values[0];
    const formattedJson = rawData.values.slice(1).map(row => {
      return row.reduce((obj, cellValue, index) => {
        obj[headers[index]] = cellValue;
        return obj;
      }, {});
    });
    console.log(formattedJson);
  },
  error: function(xhr, status, err) {
    console.error('数据获取失败:', err);
  }
});

注意事项

  • Google Sheets API免费配额为每分钟300次请求,超出后会临时封禁访问,高调用量场景建议配置后端服务中转请求
  • 不要将API密钥直接提交到公开代码仓库,生产环境建议在Google Cloud控制台配置API密钥的访问域名白名单,避免被他人盗用消耗配额
  • 若表格更新后拉取到的是旧数据,可在请求URL后拼接随机参数跳过缓存,示例:${requestUrl}&t=${Date.now()}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 08:57:03