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

如何使用Python将Pandas DataFrame写入Google Sheets指定单元格?

如何将Pandas DataFrame写入Google Sheets指定单元格

问题原因

update_cell() 方法仅支持写入单个单元格,只能接收字符串、数字这类单一值,无法直接传入二维结构的DataFrame,这就是代码执行失败的核心原因。

解决方案

使用gspread的update()方法实现批量写入,步骤如下:

  1. 将DataFrame转换为二维列表格式(可选择是否包含表头);
  2. 指定目标起始单元格的A1表示法,gspread会自动根据数据行列数扩展写入范围;
  3. 调用update()方法完成写入。

代码示例

import pandas as pd
import gspread

# 假设已完成授权并获取工作表对象sh
d = {'col1': [1, 2], 'col2': [3, 4]}
df = pd.DataFrame(data=d)

# 1. 转换DataFrame为二维列表(包含表头)
data_with_header = [df.columns.tolist()] + df.values.tolist()
# 若不需要表头,直接用:data = df.values.tolist()

# 2. 定义起始单元格的A1表示(行20,列20对应Y20)
start_cell = "Y20"

# 3. 执行写入,自动扩展范围适配DataFrame大小
sh.sheet1.update(start_cell, data_with_header, value_input_option='USER_ENTERED')

补充说明

  • value_input_option='USER_ENTERED':让Google Sheets自动识别数据格式(如数字、日期),效果与手动输入一致;
  • 若需精确控制写入范围,可自行计算结束单元格并拼接成Y20:Z21这类范围字符串传入update()方法;
  • 转换数据时,df.values.tolist()仅保留单元格数值,如需包含表头需手动添加表头列表。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 03:10:23