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

如何将Google Spreadsheet API生成的图表保存至Google Drive

如何将Google Sheets API生成的图表保存至Google Drive

Google Sheets API本身没有直接导出图表到Drive的端点,需要结合Google Drive API两步完成:先导出图表的二进制内容,再将其作为新文件上传到Drive。

步骤分解

1. 获取图表的导出内容

首先通过Sheets API的spreadsheets.get接口拿到目标图表的chartId,然后构造导出URL:

https://docs.google.com/spreadsheets/d/{SPREADSHEET_ID}/chartrender?cid={CHART_ID}

发起GET请求时带上有效的OAuth2凭证(确保有权限访问该表格),就能拿到图表的二进制数据(默认是PNG格式,可通过&format=pdf参数切换为PDF)。

2. 上传到Google Drive

调用Drive API的files.create接口,把获取到的二进制数据上传为Drive文件:

  • 配置文件元数据:指定文件名、MIME类型(PNG对应image/png,PDF对应application/pdf),可选设置父文件夹ID来指定存储位置
  • 将图表二进制数据作为请求体上传

示例Python代码:

import requests
from google.oauth2.credentials import Credentials

# 替换为你的实际参数
creds = Credentials.from_authorized_user_file('token.json')
spreadsheet_id = "YOUR_SPREADSHEET_ID"
chart_id = "YOUR_CHART_ID"
target_folder_id = "YOUR_FOLDER_ID"  # 可选,留空则存到Drive根目录

# 拉取图表数据
chart_export_url = f"https://docs.google.com/spreadsheets/d/{spreadsheet_id}/chartrender?cid={chart_id}"
chart_response = requests.get(chart_export_url, headers={"Authorization": f"Bearer {creds.token}"})
chart_data = chart_response.content

# 上传到Drive
drive_upload_url = "https://www.googleapis.com/drive/v3/files"
file_metadata = {
    "name": "MyExportedChart.png",
    "mimeType": "image/png",
    "parents": [target_folder_id] if target_folder_id else []
}

# 构造多部分请求
request_body = {
    "data": ("metadata", str(file_metadata), "application/json"),
    "file": chart_data
}
upload_response = requests.post(
    drive_upload_url,
    headers={"Authorization": f"Bearer {creds.token}"},
    files=request_body
)

# 输出上传后的文件ID
print("Uploaded file ID:", upload_response.json().get("id"))

关键注意事项

  • 授权范围必须包含:https://www.googleapis.com/auth/spreadsheets.readonly(读取表格图表)和https://www.googleapis.com/auth/drive.file(上传文件到Drive)
  • 如果需要导出其他格式,调整URL的format参数和对应的MIME类型即可
  • 确保你的凭证账号有权限访问目标表格和指定的Drive文件夹

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 08:25:28