mcpField
G
googlesheets-automation

googlesheets-automation

github.com/sickn33数据与数据库48.7k207 次安装今天更新
代码仓库

关于 googlesheets-automation

googlesheets-automation 是通过 Composio 工具包操作 Google Sheets 的自动化技能,适用于需要读写和管理表格的工作流。它涵盖筛选、格式设置及按键值更新或新增行,并依赖已连接的 Rube MCP 与 Google Sheets 账户。

主要功能

  1. 01读取和写入表格数据
  2. 02创建表格与管理工作表
  3. 03查找行并应用筛选
  4. 04按键值更新或新增行
  5. 05设置单元格格式

适用场景

  1. 01批量读取或更新表格范围
  2. 02创建表格并整理工作表标签
  3. 03按条件查找和筛选记录
  4. 04按唯一键同步 CRM 或库存数据

MCP 相关

该技能通过 Rube MCP 调用 Composio 的 Google Sheets 工具。使用前需在 MCP 客户端连接 Rube MCP,并确认 Google Sheets 账户授权状态有效。

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/sickn33/agentic-awesome-skills --skill googlesheets-automation

安装后在 Claude Code 中输入/googlesheets-automation确认已加载。

详细介绍

通过 Rube MCP 实现 Google Sheets 自动化

借助 Composio 的 Google Sheets 工具包,自动化 Google Sheets 工作流,包括读取/写入数据、管理电子表格与标签页、设置单元格格式、筛选行以及 upsert 记录。

前提条件

  • Rube MCP 必须已连接(RUBE_SEARCH_TOOLS 可用)
  • 通过 RUBE_MANAGE_CONNECTIONS 使用工具包 googlesheets 建立有效的 Google Sheets 连接
  • 始终先调用 RUBE_SEARCH_TOOLS 以获取最新的工具 schema

设置

获取 Rube MCP:在你的客户端配置中将 https://rube.app/mcp 添加为 MCP 服务。无需 API 密钥——只需添加该端点即可使用。

  1. 通过确认 RUBE_SEARCH_TOOLS 有响应,验证 Rube MCP 可用
  2. 使用工具包 googlesheets 调用 RUBE_MANAGE_CONNECTIONS
  3. 如果连接不是 ACTIVE,请按照返回的授权链接完成 Google OAuth
  4. 在运行任何工作流之前,确认连接状态显示为 ACTIVE

核心工作流

1. 读取和写入数据

使用场景:用户想要从 Google Sheet 读取数据或向其写入数据

工具顺序:

  1. GOOGLESHEETS_SEARCH_SPREADSHEETS - 如果 ID 未知,按名称查找电子表格 [前提条件]
  2. GOOGLESHEETS_GET_SHEET_NAMES - 枚举标签页名称以定位正确的 sheet [前提条件]
  3. GOOGLESHEETS_BATCH_GET - 从一个或多个范围读取数据 [必需]
  4. GOOGLESHEETS_BATCH_UPDATE - 将数据写入某个范围或追加行 [必需]
  5. GOOGLESHEETS_VALUES_UPDATE - 更新单个特定范围 [替代方案]
  6. GOOGLESHEETS_SPREADSHEETS_VALUES_APPEND - 在表格末尾追加行 [替代方案]

关键参数:

  • spreadsheet_id:来自电子表格 URL 的字母数字 ID(位于 '/d/' 和 '/edit' 之间)
  • ranges:A1 表示法数组(例如 'Sheet1!A1:Z1000');始终使用有界范围
  • sheet_name:标签页名称(支持不区分大小写匹配)
  • values:二维数组,其中每个内部数组为一行
  • first_cell_location:A1 表示法中的起始单元格(省略则追加)
  • valueInputOption:'USER_ENTERED'(解析后)或 'RAW'(字面值)

易错点:

  • 大小写错误或不存在的标签页名称会报错 "Sheet 'X' not found"
  • 空范围可能会省略 valueRanges[i].values;将缺失视为空数组
  • GOOGLESHEETS_BATCH_UPDATE 的 values 必须是二维数组(列表的列表),即使是单行也是如此
  • 在超过 10,000 行的 sheet 上使用 'A:Z' 这类无界范围可能导致超时;始终用行限制来界定范围
  • 追加会遵循检测到的 tableRange;使用返回的 updatedRange 验证放置位置
2. 创建和管理电子表格

使用场景:用户想要创建新电子表格或管理其中的标签页

工具顺序:

  1. GOOGLESHEETS_CREATE_GOOGLE_SHEET1 - 创建新电子表格 [必需]
  2. GOOGLESHEETS_ADD_SHEET - 添加新标签页/工作表 [必需]
  3. GOOGLESHEETS_UPDATE_SHEET_PROPERTIES - 重命名、隐藏、重新排序或为标签页设置颜色 [可选]
  4. GOOGLESHEETS_GET_SPREADSHEET_INFO - 获取完整的电子表格元数据 [可选]
  5. GOOGLESHEETS_FIND_WORKSHEET_BY_TITLE - 检查特定标签页是否存在 [可选]

关键参数:

  • title:电子表格或 sheet 标签页名称
  • spreadsheetId:目标电子表格 ID
  • forceUnique:如果标签页名称已存在,自动追加后缀(默认 true)
  • properties.gridProperties:设置行/列数、冻结行

易错点:

  • Sheet 名称在同一个电子表格内必须唯一
  • 默认 sheet 名称取决于语言环境(英文为 'Sheet1',西班牙文为 'Hoja 1')
  • 并行创建多个 sheet 时不要使用 index(会导致 'index too high' 错误)
  • 如果账户缺少访问权限,GOOGLESHEETS_GET_SPREADSHEET_INFO 可能返回 403
3. 搜索和筛选行

适用场景:用户想查找特定行或筛选工作表数据

工具调用顺序:

  1. GOOGLESHEETS_LOOKUP_SPREADSHEET_ROW - 查找与单元格值完全匹配的首行 [必需]
  2. GOOGLESHEETS_SET_BASIC_FILTER - 对某个范围应用筛选/排序 [替代方案]
  3. GOOGLESHEETS_CLEAR_BASIC_FILTER - 移除现有筛选条件 [可选]
  4. GOOGLESHEETS_BATCH_GET - 读取筛选结果 [可选]

关键参数:

  • query:要匹配的确切文本值(匹配整个单元格内容)
  • range:要搜索的 A1 表示法范围
  • case_sensitive:是否区分大小写的布尔值(默认值为 false)
  • filter.range:包含 sheet_id 的基本筛选网格范围
  • filter.criteria:基于列的筛选条件
  • filter.sortSpecs:排序规范

注意事项:

  • GOOGLESHEETS_LOOKUP_SPREADSHEET_ROW 匹配整个单元格内容,而不是子字符串
  • 名称中带空格的工作表必须在范围中加单引号(例如,"'My Sheet'!A:Z")
  • 查找不支持不带范围的工作表名称;务必指定范围
4. 按键值插入或更新行

适用场景:用户想根据唯一键列更新现有行或插入新行

工具调用顺序:

  1. GOOGLESHEETS_UPSERT_ROWS - 更新匹配的行或追加新行 [必需]

关键参数:

  • spreadsheetId:目标电子表格 ID
  • sheetName:工作表标签名称
  • keyColumn:用作唯一标识符的列标题名称(例如,'Email'、'SKU')
  • headers:数据的列名称列表
  • rows:数据行的二维数组
  • strictMode:列数不匹配时是否报错(默认值为 true)

注意事项:

  • keyColumn 必须是实际的标题名称,而不是列字母(例如,'Email',而不是 'A')
  • 如果未提供 headers,则将 rows 的第一行视为标题
  • 当 strictMode=true 时,值的数量多于标题的行会导致错误
  • 会自动将缺失的列添加到工作表中
5. 设置单元格格式

适用场景:用户想为单元格应用格式(粗体、颜色、字号)

工具调用顺序:

  1. GOOGLESHEETS_GET_SPREADSHEET_INFO - 获取目标工作表标签的数字 sheetId [前置条件]
  2. GOOGLESHEETS_FORMAT_CELL - 对某个范围应用格式 [必需]
  3. GOOGLESHEETS_UPDATE_SHEET_PROPERTIES - 更改冻结行、列宽 [可选]

关键参数:

  • spreadsheet_id:电子表格 ID
  • worksheet_id:数字 sheetId(不是工作表标签名称);通过 GET_SPREADSHEET_INFO 获取
  • range:A1 表示法(例如,'A1:F1')——优先于索引字段
  • bold、italic、underline、strikethrough:布尔格式选项
  • red、green、blue:背景颜色,取值为 0.0-1.0 的浮点数(不是 0-255 的整数)
  • fontSize:字号,单位为点

注意事项:

  • 需要数字 worksheet_id,而非工作表标签标题;从电子表格元数据中获取
  • 颜色通道取值为 0-1 的浮点数(例如,纯红色为 1.0),而非 0-255 的整数
  • 响应可能返回空回复对象([{}]);请通过回读验证格式
  • 每次调用只能设置一个范围的格式;批量设置格式需要分别调用

常见模式

ID 解析
  • 电子表格名称 -> ID:使用带有 query 的 GOOGLESHEETS_SEARCH_SPREADSHEETS
  • 工作表标签名称 -> sheetId:使用 GOOGLESHEETS_GET_SPREADSHEET_INFO,从 sheets 元数据中提取
  • 检查工作表标签是否存在:GOOGLESHEETS_FIND_WORKSHEET_BY_TITLE
速率限制

Google Sheets 实施严格的速率限制:

  • 每分钟最多读取 60 次、写入 60 次
  • 超出限制会导致错误;尽可能使用批量操作
  • 使用 GOOGLESHEETS_BATCH_GET 和 GOOGLESHEETS_BATCH_UPDATE 提高效率
数据模式
  • 写入前务必先读取,以了解现有布局
  • 对于 CRM 同步、库存更新和去重场景,使用 GOOGLESHEETS_UPSERT_ROWS
  • 追加模式(省略 first_cell_location)是添加新记录最稳妥的方式
  • 使用 GOOGLESHEETS_CLEAR_VALUES 清除内容,同时保留格式

已知陷阱

  • 工作表名称:默认名称因区域设置而异;非英语账户中可能不存在“Sheet1”
  • 范围表示法:名称中包含空格的工作表在 A1 表示法中需要用单引号括起来
  • 无界范围:大型工作表可能导致超时;务必指定行范围(例如,“A1:Z10000”)
  • 二维数组:所有值参数都必须是列表的列表,即使只有一行也不例外
  • 颜色值:使用 0.0-1.0 的浮点数,而不是 0-255 的整数
  • 格式设置 ID:FORMAT_CELL 需要数值型 sheetId,而不是工作表标签名称
  • 速率限制:每分钟 60 次读取和 60 次写入;请使用批处理以避免超出限制
  • 删除维度:GOOGLESHEETS_DELETE_DIMENSION 不可撤销;请仔细检查边界

快速参考

任务工具标识关键参数
搜索电子表格GOOGLESHEETS_SEARCH_SPREADSHEETSquery, search_type
创建电子表格GOOGLESHEETS_CREATE_GOOGLE_SHEET1title
列出工作表标签GOOGLESHEETS_GET_SHEET_NAMESspreadsheet_id
添加工作表标签GOOGLESHEETS_ADD_SHEETspreadsheetId, title
读取数据GOOGLESHEETS_BATCH_GETspreadsheet_id, ranges
读取单个范围GOOGLESHEETS_VALUES_GETspreadsheet_id, range
写入数据GOOGLESHEETS_BATCH_UPDATEspreadsheet_id, sheet_name, values
更新范围GOOGLESHEETS_VALUES_UPDATEspreadsheet_id, range, values
追加行GOOGLESHEETS_SPREADSHEETS_VALUES_APPENDspreadsheetId, range, values
插入或更新行GOOGLESHEETS_UPSERT_ROWSspreadsheetId, sheetName, keyColumn, rows
查找行GOOGLESHEETS_LOOKUP_SPREADSHEET_ROWspreadsheet_id, query
设置单元格格式GOOGLESHEETS_FORMAT_CELLspreadsheet_id, worksheet_id, range
设置筛选器GOOGLESHEETS_SET_BASIC_FILTERspreadsheetId, filter
清除值GOOGLESHEETS_CLEAR_VALUESspreadsheet_id, range
删除行/列GOOGLESHEETS_DELETE_DIMENSIONspreadsheet_id, sheet_name, dimension
电子表格信息GOOGLESHEETS_GET_SPREADSHEET_INFOspreadsheet_id
更新工作表标签属性GOOGLESHEETS_UPDATE_SHEET_PROPERTIESspreadsheetId, properties

数据和写入边界

连接预期的 Google 账户,并且只授予所需的电子表格权限范围;仅有 MCP 端点并不能授权访问。写入前,请确认电子表格 ID、工作表标签和确切范围。界面筛选器不会让读取的值仅包含可见行:请读取数据,并明确应用预期的筛选条件。对于不可信的纯文本,请使用 RAW;USER_ENTERED 可能会将内容解析为公式。检查插入或更新操作的键是否重复,以及是否存在并发写入者;如果追加结果不确定,应核对相应范围,而不是盲目重试。安排批量操作前,请确认实际项目/用户和方法适用的配额限制。

适用场景

当需要执行概述中所述的工作流或操作时,可以使用此技能。

示例

用户请求:

通过 Rube MCP(Composio)自动执行 Google Sheets 操作(读取、写入、格式设置、筛选、管理电子表格)。

限制

  • 仅当任务明确符合上述范围时才使用此技能。
  • 请勿将输出视为针对特定环境的验证、测试或专家审查的替代品。
  • 如果缺少必要的输入、权限、安全边界或成功标准,请停止并请求澄清。

评论

支持 Markdown