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

是否存在用于替换Google Sheets指定工作表内容的API调用?

使用Google Sheets API实现指定工作表数据替换

可以通过Google Sheets API的组合调用完成需求:先清空目标工作表的所有内容,再将源工作表的数据写入目标表。以下是具体实现步骤:

步骤1:清空目标工作表的所有单元格内容

使用spreadsheets.values.clear接口,指定目标工作表的完整数据范围(比如目标表名!A:ZZ,覆盖所有可能有数据的列),即可一键清空所有单元格内容。

请求示例(HTTP POST):

POST https://sheets.googleapis.com/v4/spreadsheets/{spreadsheetId}/values/目标表名!A:ZZ:clear
Authorization: Bearer {accessToken}
Content-Type: application/json

{}

如果需要连单元格格式一起清除,可以使用spreadsheets.batchUpdate接口的DeleteRangeRequest,删除目标表的所有行/列后再插入空白行,但通常仅清空内容已满足替换需求。

步骤2:获取源工作表的数据

使用spreadsheets.values.get接口获取源工作表的全部数据,指定范围为源表的已用数据区域(用源表名!A:ZZ或者直接用源表名让API自动识别有效数据范围)。

请求示例(HTTP GET):

GET https://sheets.googleapis.com/v4/spreadsheets/{spreadsheetId}/values/源表名?majorDimension=ROWS
Authorization: Bearer {accessToken}

步骤3:将源数据写入目标工作表

使用spreadsheets.values.update接口,将获取到的源数据写入目标工作表的起始位置(比如目标表名!A1),设置valueInputOption为USER_ENTERED以保留数据格式逻辑(如自动识别日期、公式等)。

请求示例(HTTP PUT):

PUT https://sheets.googleapis.com/v4/spreadsheets/{spreadsheetId}/values/目标表名!A1?valueInputOption=USER_ENTERED
Authorization: Bearer {accessToken}
Content-Type: application/json

{
  "values": [
    ["列1标题", "列2标题"],
    ["数据1", "数据2"],
    ["数据3", "数据4"]
  ]
}

Python客户端库示例

如果使用Python的google-api-python-client,可以封装成如下函数:

from googleapiclient.discovery import build
from google.oauth2.credentials import Credentials

def replace_sheet_data(spreadsheet_id, src_sheet_name, dest_sheet_name, creds):
    service = build('sheets', 'v4', credentials=creds)
    
    # 清空目标工作表
    clear_range = f"{dest_sheet_name}!A:ZZ"
    service.spreadsheets().values().clear(
        spreadsheetId=spreadsheet_id,
        range=clear_range
    ).execute()
    
    # 获取源工作表数据
    src_range = src_sheet_name
    result = service.spreadsheets().values().get(
        spreadsheetId=spreadsheet_id,
        range=src_range
    ).execute()
    src_values = result.get('values', [])
    
    if not src_values:
        print("源工作表无数据")
        return
    
    # 写入目标工作表
    dest_range = f"{dest_sheet_name}!A1"
    service.spreadsheets().values().update(
        spreadsheetId=spreadsheet_id,
        range=dest_range,
        valueInputOption='USER_ENTERED',
        body={'values': src_values}
    ).execute()
    
    print("数据替换完成")

注意:确保你的OAuth2凭据拥有https://www.googleapis.com/auth/spreadsheets权限,才能执行读写操作。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 14:36:25