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

如何从公开Google Spreadsheet获取各子表gid或对应访问URL?

可用替代方案

方案1:解析公开表格的HTML配置(无需API、无需XML解析)

该方案利用公开表格页面内预加载的子表配置信息,仅通过正则即可提取所有子表的标题和gid(每个子表的唯一标识,可用于构造CSV导出地址),完全满足你无需解析XML的需求,步骤如下:

  • 构造主表公开访问URL:https://docs.google.com/spreadsheets/d/{你的表格密钥}/edit
  • 发送GET请求获取页面HTML内容
  • 匹配页面内预存的子表配置,提取每个子表的name(对应标题)和id(对应gid)
  • 单个子表的CSV导出URL格式为:https://docs.google.com/spreadsheets/d/{你的表格密钥}/export?format=csv&gid={gid}

Python实现示例:

import re
import urllib.request
import json

def get_sheets_map(spreadsheet_key: str) -> dict:
    url = f"https://docs.google.com/spreadsheets/d/{spreadsheet_key}/edit"
    # 模拟浏览器UA避免被拦截
    headers = {
        "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"
    }
    req = urllib.request.Request(url, headers=headers)
    with urllib.request.urlopen(req) as f:
        html = f.read().decode("utf-8")
    
    # 正则匹配子表配置段
    match_res = re.search(r'\"sheets\":(\[.*?\])', html, re.S)
    if not match_res:
        return {}
    
    sheets_raw = match_res.group(1).replace(r'\/', '/').replace(r'\"', '"')
    sheets_list = json.loads(sheets_raw)
    
    # 构造 子表标题:gid 映射
    return {
        sheet["name"]: str(sheet["id"])
        for sheet in sheets_list
        if sheet.get("name") and sheet.get("id")
    }

# 调用示例
spreadsheet_key = "MyL0NgSpr4dsheetK3y3x4mpl3"
sheets = get_sheets_map(spreadsheet_key)
for sheet_name, gid in sheets.items():
    csv_url = f"https://docs.google.com/spreadsheets/d/{spreadsheet_key}/export?format=csv&gid={gid}"
    print(f"子表名:{sheet_name},CSV地址:{csv_url}")

注意:只要表格设置为「所有人可查看」,该方法即可正常使用,不需要额外安装第三方依赖,完全用Python内置库即可实现。

方案2:官方Sheets API v4(适合长期稳定使用)

如果担心前端页面结构变动影响解析,可以选择官方API方案,仅需要申请免费的Google API密钥,不需要OAuth授权即可访问公开表格:

  • 在Google Cloud控制台申请API密钥,启用Google Sheets API权限
  • 构造请求URL:https://sheets.googleapis.com/v4/spreadsheets/{spreadsheet_key}?key={你的API密钥}
  • 返回的JSON结构中sheets字段下直接包含所有子表的标题(properties.title)和gid(properties.sheetId)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 06:24:01