OpenSheet - Google 表格转 JSON 接口文档

OpenSheet 是一款极简、优雅的 Google Sheets 转 JSON API 服务。无需繁琐的 Google Cloud Platform 认证,无需申请 API Key,只需将谷歌表格设为公开只读,即可瞬间将其作为强大的无后端 CMS 或数据库使用!


接口 URL 格式规范

OpenSheet 提供标准的 RESTful API 路由结构:

GET https://gh-proxy.org/opensheet/{spreadsheet_id}/{sheet_name_or_index}
  • {spreadsheet_id}:Google 电子表格的唯一 ID(可直接从浏览器地址栏中提取)。
  • {sheet_name_or_index}:工作表(Tab)名称(如 listSheet1)或从 1 开始的工作表序号(如 12)。

三步极速上手指南

第一步:设置表格标题行 (Header Row)

在 Google Sheets 表格中,第一行将自动被解析为输出 JSON 数组中各对象的属性名 (Keys)

  • 请确保第一行每个单元格均有清晰的列名(例如 name, amount, date, message)。
  • 避免第一行出现空单元格或重复列名。

第二步:开启表格共享公开权限

  1. 打开目标 Google Sheets 表格,点击右上角绿色的 「共享」 (Share) 按钮。
  2. 在「常规访问权限」中,将权限从“受限制”改为 「知道链接的任何人」 (Anyone with the link)
  3. 角色保持为 「查看者」 (Viewer) 即可。

第三步:提取 Spreadsheet ID 并请求接口

从浏览器地址栏中获取表格 ID:

https://docs.google.com/spreadsheets/d/1NuaXdRper70yHQXNYZaXR0Jv-1xELZ_RaPuEjWDaZns/edit
                                        └─────────────────┬──────────────────┘
                                                    Spreadsheet ID

官方直观示例

1. 原始 Google 表格展示链接

公开示例表格:

https://docs.google.com/spreadsheets/d/1NuaXdRper70yHQXNYZaXR0Jv-1xELZ_RaPuEjWDaZns/edit

2. 对应的 JSON API 接口调用

  • 按工作表名称调用
    curl https://gh-proxy.org/opensheet/1NuaXdRper70yHQXNYZaXR0Jv-1xELZ_RaPuEjWDaZns/list
    
  • 按工作表序号调用(第一张表)
    curl https://gh-proxy.org/opensheet/1NuaXdRper70yHQXNYZaXR0Jv-1xELZ_RaPuEjWDaZns/1
    

3. 返回的 JSON 数据结构

[
  {
    "name": "张三",
    "amount": "¥50.00",
    "date": "2026-09-01",
    "message": "感谢开源支持!"
  },
  {
    "name": "李四",
    "amount": "¥100.00",
    "date": "2026-09-02",
    "message": "加油!"
  }
]

4. 实际落地案例

本站的捐赠者荣誉榜页面就是基于 OpenSheet 实现实时展示的:


高级查询参数

?raw=true 获取底层原始数值

  • 默认行为:OpenSheet 会返回 Google Sheets 自动排版格式化后的可视化文本字符串。例如单元格中的货币 $1,234.56 会原样输出为字符串 "$1,234.56"
  • 追加 ?raw=true:将返回单元格底层的原生数据类型(如数字 1234.56、布尔值 true/false),非常适合需要进行前端数学统计、图表绘制的数据分析场景。
https://gh-proxy.org/opensheet/1NuaXdRper70yHQXNYZaXR0Jv-1xELZ_RaPuEjWDaZns/list?raw=true

10 分钟全球边缘缓存机制

所有的 OpenSheet API 请求均接入全球 Anycast CDN 边缘缓存节点:

  • 毫秒级极速响应:热点请求由离访客最近的边缘节点直接响应,延迟通常低于 30ms。
  • 抗高并发流量峰值:即使前端页面遭受高频并发访问,所有流量均在边缘层消化,完全避免触碰 Google API 的每分钟频次限制。
  • 自动刷新策略:边缘节点采用 10 分钟自动刷新 机制。在 Google Sheets 中修改数据后,预计在 10 分钟内全球边缘缓存将完全同步最新数据。

代码集成范例

JavaScript / TypeScript (Fetch API)

async function loadSheetData() {
  const SPREADSHEET_ID = '1NuaXdRper70yHQXNYZaXR0Jv-1xELZ_RaPuEjWDaZns';
  const SHEET_NAME = 'list';
  
  const response = await fetch(`https://gh-proxy.org/opensheet/${SPREADSHEET_ID}/${SHEET_NAME}`);
  const data = await response.json();
  console.log('读取到表格数据:', data);
  return data;
}

Python (requests)

import requests

url = "https://gh-proxy.org/opensheet/1NuaXdRper70yHQXNYZaXR0Jv-1xELZ_RaPuEjWDaZns/list"
response = requests.get(url)
items = response.json()

for row in items:
    print(row.get('name'), row.get('amount'))

💬 互动交流与反馈