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

如何在Google Colab中用gspread将工作表复制到已有表格?

解决Google Colab中用gspread复制工作表到另一个表格的问题

问题原因

你遇到的AttributeError是因为当前使用的gspread版本过旧,Worksheet对象尚未添加copy_to方法。

解决方案一:升级gspread到最新版本

  1. 在Colab中执行以下命令升级gspread:
!pip install --upgrade gspread
  1. 重新运行代码,确保授权和工作表对象获取正确:
from google.colab import auth
auth.authenticate_user()

import gspread
from google.auth import default

creds, _ = default()
gc = gspread.authorize(creds)

# 获取源表格及目标工作表
sh_1 = gc.open('spreadsheet_1')
ws = sh_1.worksheet('ws_1')

# 获取目标表格
sh_2 = gc.open('spreadsheet_2')

# 将工作表复制到目标表格
ws.copy_to(sh_2.id)

若需要自定义复制后的工作表名称,可添加title参数:

ws.copy_to(sh_2.id, title="复制后的ws_1")

解决方案二:直接调用Google Sheets API(兼容旧版gspread)

如果升级gspread后仍存在问题,可直接通过gspread的客户端调用底层Google Sheets API完成复制:

from google.colab import auth
auth.authenticate_user()

import gspread
from google.auth import default

creds, _ = default()
gc = gspread.authorize(creds)

# 获取源表格及目标工作表
sh_1 = gc.open('spreadsheet_1')
ws = sh_1.worksheet('ws_1')

# 获取目标表格
sh_2 = gc.open('spreadsheet_2')

# 调用API执行复制操作
gc.request(
    "POST",
    f"https://sheets.googleapis.com/v4/spreadsheets/{sh_1.id}/sheets/{ws.id}:copyTo",
    json={"destinationSpreadsheetId": sh_2.id}
)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 12:02:42