googlesheets-automation
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseGoogle Sheets Automation via Rube MCP
通过Rube MCP实现Google Sheets自动化
Automate Google Sheets workflows including reading/writing data, managing spreadsheets and tabs, formatting cells, filtering rows, and upserting records through Composio's Google Sheets toolkit.
通过Composio的Google Sheets工具包,自动化Google Sheets工作流,包括读写数据、管理电子表格和标签页、格式化单元格、筛选行以及插入更新记录。
Prerequisites
前提条件
- Rube MCP must be connected (RUBE_SEARCH_TOOLS available)
- Active Google Sheets connection via with toolkit
RUBE_MANAGE_CONNECTIONSgooglesheets - Always call first to get current tool schemas
RUBE_SEARCH_TOOLS
- 必须已连接Rube MCP(需提供RUBE_SEARCH_TOOLS)
- 通过并使用工具包
RUBE_MANAGE_CONNECTIONS建立有效的Google Sheets连接googlesheets - 始终先调用获取当前工具的架构
RUBE_SEARCH_TOOLS
Setup
配置步骤
Get Rube MCP: Add as an MCP server in your client configuration. No API keys needed — just add the endpoint and it works.
https://rube.app/mcp- Verify Rube MCP is available by confirming responds
RUBE_SEARCH_TOOLS - Call with toolkit
RUBE_MANAGE_CONNECTIONSgooglesheets - If connection is not ACTIVE, follow the returned auth link to complete Google OAuth
- Confirm connection status shows ACTIVE before running any workflows
获取Rube MCP:在客户端配置中添加作为MCP服务器。无需API密钥 — 只需添加端点即可使用。
https://rube.app/mcp- 确认能正常响应,以此验证Rube MCP是否可用
RUBE_SEARCH_TOOLS - 调用并指定工具包
RUBE_MANAGE_CONNECTIONSgooglesheets - 如果连接未处于激活状态,按照返回的授权链接完成Google OAuth认证
- 在运行任何工作流之前,确认连接状态显示为ACTIVE
Core Workflows
核心工作流
1. Read and Write Data
1. 读写数据
When to use: User wants to read data from or write data to a Google Sheet
Tool sequence:
- - Find spreadsheet by name if ID unknown [Prerequisite]
GOOGLESHEETS_SEARCH_SPREADSHEETS - - Enumerate tab names to target the right sheet [Prerequisite]
GOOGLESHEETS_GET_SHEET_NAMES - - Read data from one or more ranges [Required]
GOOGLESHEETS_BATCH_GET - - Write data to a range or append rows [Required]
GOOGLESHEETS_BATCH_UPDATE - - Update a single specific range [Alternative]
GOOGLESHEETS_VALUES_UPDATE - - Append rows to end of table [Alternative]
GOOGLESHEETS_SPREADSHEETS_VALUES_APPEND
Key parameters:
- : Alphanumeric ID from the spreadsheet URL (between '/d/' and '/edit')
spreadsheet_id - : A1 notation array (e.g., 'Sheet1!A1:Z1000'); always use bounded ranges
ranges - : Tab name (case-insensitive matching supported)
sheet_name - : 2D array where each inner array is a row
values - : Starting cell in A1 notation (omit to append)
first_cell_location - : 'USER_ENTERED' (parsed) or 'RAW' (literal)
valueInputOption
Pitfalls:
- Mis-cased or non-existent tab names error "Sheet 'X' not found"
- Empty ranges may omit ; treat missing as empty array
valueRanges[i].values - values must be a 2D array (list of lists), even for a single row
GOOGLESHEETS_BATCH_UPDATE - Unbounded ranges like 'A:Z' on sheets with >10,000 rows may cause timeouts; always bound with row limits
- Append follows the detected ; use returned
tableRangeto verify placementupdatedRange
适用场景:用户需要从Google Sheets读取数据或向其中写入数据
工具序列:
- - 若未知ID,通过名称查找电子表格 [前提步骤]
GOOGLESHEETS_SEARCH_SPREADSHEETS - - 枚举标签页名称以定位目标工作表 [前提步骤]
GOOGLESHEETS_GET_SHEET_NAMES - - 从一个或多个区域读取数据 [必需步骤]
GOOGLESHEETS_BATCH_GET - - 向某个区域写入数据或追加行 [必需步骤]
GOOGLESHEETS_BATCH_UPDATE - - 更新单个特定区域 [替代方案]
GOOGLESHEETS_VALUES_UPDATE - - 向表格末尾追加行 [替代方案]
GOOGLESHEETS_SPREADSHEETS_VALUES_APPEND
关键参数:
- : 电子表格URL中位于'/d/'和'/edit/'之间的字母数字ID
spreadsheet_id - : A1表示法数组(例如'Sheet1!A1:Z1000');始终使用有界区域
ranges - : 标签页名称(支持不区分大小写的匹配)
sheet_name - : 二维数组,每个内部数组代表一行数据
values - : 起始单元格的A1表示法(省略则追加到末尾)
first_cell_location - : 'USER_ENTERED'(解析后输入)或'RAW'(原样输入)
valueInputOption
注意事项:
- 标签页名称大小写错误或不存在时,会触发"Sheet 'X' not found"错误
- 空区域可能会省略;需将缺失值视为空数组
valueRanges[i].values - 的values参数必须是二维数组(列表的列表),即使是单行数据也需如此
GOOGLESHEETS_BATCH_UPDATE - 对于超过10,000行的工作表,使用'A:Z'这类无界区域可能会导致超时;始终要设置行限制
- 追加操作会遵循检测到的;可通过返回的
tableRange验证数据位置updatedRange
2. Create and Manage Spreadsheets
2. 创建与管理电子表格
When to use: User wants to create a new spreadsheet or manage tabs within one
Tool sequence:
- - Create a new spreadsheet [Required]
GOOGLESHEETS_CREATE_GOOGLE_SHEET1 - - Add a new tab/worksheet [Required]
GOOGLESHEETS_ADD_SHEET - - Rename, hide, reorder, or color tabs [Optional]
GOOGLESHEETS_UPDATE_SHEET_PROPERTIES - - Get full spreadsheet metadata [Optional]
GOOGLESHEETS_GET_SPREADSHEET_INFO - - Check if a specific tab exists [Optional]
GOOGLESHEETS_FIND_WORKSHEET_BY_TITLE
Key parameters:
- : Spreadsheet or sheet tab name
title - : Target spreadsheet ID
spreadsheetId - : Auto-append suffix if tab name exists (default true)
forceUnique - : Set row/column counts, frozen rows
properties.gridProperties
Pitfalls:
- Sheet names must be unique within a spreadsheet
- Default sheet names are locale-dependent ('Sheet1' in English, 'Hoja 1' in Spanish)
- Don't use when creating multiple sheets in parallel (causes 'index too high' errors)
index - can return 403 if account lacks access
GOOGLESHEETS_GET_SPREADSHEET_INFO
适用场景:用户需要创建新电子表格或管理其中的标签页
工具序列:
- - 创建新电子表格 [必需步骤]
GOOGLESHEETS_CREATE_GOOGLE_SHEET1 - - 添加新标签页/工作表 [必需步骤]
GOOGLESHEETS_ADD_SHEET - - 重命名、隐藏、重新排序标签页或设置标签页颜色 [可选步骤]
GOOGLESHEETS_UPDATE_SHEET_PROPERTIES - - 获取完整的电子表格元数据 [可选步骤]
GOOGLESHEETS_GET_SPREADSHEET_INFO - - 检查特定标签页是否存在 [可选步骤]
GOOGLESHEETS_FIND_WORKSHEET_BY_TITLE
关键参数:
- : 电子表格或标签页的名称
title - : 目标电子表格ID
spreadsheetId - : 若标签页名称已存在,自动追加后缀(默认值为true)
forceUnique - : 设置行/列数量、冻结行
properties.gridProperties
注意事项:
- 同一电子表格内的标签页名称必须唯一
- 默认标签页名称取决于区域设置(英文为'Sheet1',西班牙语为'Hoja 1')
- 并行创建多个标签页时不要使用参数(会触发'index too high'错误)
index - 若账户无访问权限,会返回403错误
GOOGLESHEETS_GET_SPREADSHEET_INFO
3. Search and Filter Rows
3. 搜索与筛选行
When to use: User wants to find specific rows or apply filters to sheet data
Tool sequence:
- - Find first row matching exact cell value [Required]
GOOGLESHEETS_LOOKUP_SPREADSHEET_ROW - - Apply filter/sort to a range [Alternative]
GOOGLESHEETS_SET_BASIC_FILTER - - Remove existing filter [Optional]
GOOGLESHEETS_CLEAR_BASIC_FILTER - - Read filtered results [Optional]
GOOGLESHEETS_BATCH_GET
Key parameters:
- : Exact text value to match (matches entire cell content)
query - : A1 notation range to search within
range - : Boolean for case-sensitive matching (default false)
case_sensitive - : Grid range with sheet_id for basic filter
filter.range - : Column-based filter conditions
filter.criteria - : Sort specifications
filter.sortSpecs
Pitfalls:
- matches entire cell content, not substrings
GOOGLESHEETS_LOOKUP_SPREADSHEET_ROW - Sheet names with spaces must be single-quoted in ranges (e.g., "'My Sheet'!A:Z")
- Bare sheet names without ranges are not supported for lookup; always specify a range
适用场景:用户需要查找特定行或对工作表数据应用筛选器
工具序列:
- - 查找与单元格精确值匹配的第一行 [必需步骤]
GOOGLESHEETS_LOOKUP_SPREADSHEET_ROW - - 对某个区域应用筛选/排序 [替代方案]
GOOGLESHEETS_SET_BASIC_FILTER - - 移除现有筛选器 [可选步骤]
GOOGLESHEETS_CLEAR_BASIC_FILTER - - 读取筛选后的结果 [可选步骤]
GOOGLESHEETS_BATCH_GET
关键参数:
- : 要匹配的精确文本值(匹配整个单元格内容)
query - : 搜索范围的A1表示法
range - : 是否区分大小写的布尔值(默认值为false)
case_sensitive - : 包含sheet_id的网格范围,用于基础筛选
filter.range - : 基于列的筛选条件
filter.criteria - : 排序规则
filter.sortSpecs
注意事项:
- 匹配整个单元格内容,而非子字符串
GOOGLESHEETS_LOOKUP_SPREADSHEET_ROW - 名称包含空格的标签页,在区域表示法中必须用单引号括起来(例如"'My Sheet'!A:Z")
- 查找操作不支持不带区域的裸标签页名称;始终要指定范围
4. Upsert Rows by Key
4. 按主键Upsert行
When to use: User wants to update existing rows or insert new ones based on a unique key column
Tool sequence:
- - Update matching rows or append new ones [Required]
GOOGLESHEETS_UPSERT_ROWS
Key parameters:
- : Target spreadsheet ID
spreadsheetId - : Tab name
sheetName - : Column header name used as unique identifier (e.g., 'Email', 'SKU')
keyColumn - : List of column names for the data
headers - : 2D array of data rows
rows - : Error on mismatched column counts (default true)
strictMode
Pitfalls:
- must be an actual header name, NOT a column letter (e.g., 'Email' not 'A')
keyColumn - If is NOT provided, first row of
headersis treated as headersrows - With , rows with more values than headers cause an error
strictMode=true - Auto-adds missing columns to the sheet
适用场景:用户需要基于唯一键列更新现有行或插入新行
工具序列:
- - 更新匹配行或追加新行 [必需步骤]
GOOGLESHEETS_UPSERT_ROWS
关键参数:
- : 目标电子表格ID
spreadsheetId - : 标签页名称
sheetName - : 用作唯一标识符的列标题名称(例如'Email'、'SKU')
keyColumn - : 数据的列名称列表
headers - : 数据行的二维数组
rows - : 列数不匹配时触发错误(默认值为true)
strictMode
注意事项:
- 必须是实际的标题名称,而非列字母(例如使用'Email'而非'A')
keyColumn - 若未提供,则
headers的第一行会被视为标题rows - 当时,值数量与标题数量不匹配的行会触发错误
strictMode=true - 会自动向工作表添加缺失的列
5. Format Cells
5. 格式化单元格
When to use: User wants to apply formatting (bold, colors, font size) to cells
Tool sequence:
- - Get numeric sheetId for target tab [Prerequisite]
GOOGLESHEETS_GET_SPREADSHEET_INFO - - Apply formatting to a range [Required]
GOOGLESHEETS_FORMAT_CELL - - Change frozen rows, column widths [Optional]
GOOGLESHEETS_UPDATE_SHEET_PROPERTIES
Key parameters:
- : Spreadsheet ID
spreadsheet_id - : Numeric sheetId (NOT tab name); get from GET_SPREADSHEET_INFO
worksheet_id - : A1 notation (e.g., 'A1:F1') - preferred over index fields
range - ,
bold,italic,underline: Boolean formatting optionsstrikethrough - ,
red,green: Background color as 0.0-1.0 floats (NOT 0-255 ints)blue - : Font size in points
fontSize
Pitfalls:
- Requires numeric , not tab title; get from spreadsheet metadata
worksheet_id - Color channels are 0-1 floats (e.g., 1.0 for full red), NOT 0-255 integers
- Responses may return empty reply objects ([{}]); verify formatting via readback
- Format one range per call; batch formatting requires separate calls
适用场景:用户需要对单元格应用格式设置(加粗、颜色、字号)
工具序列:
- - 获取目标标签页的数字形式sheetId [前提步骤]
GOOGLESHEETS_GET_SPREADSHEET_INFO - - 对某个区域应用格式设置 [必需步骤]
GOOGLESHEETS_FORMAT_CELL - - 修改冻结行、列宽 [可选步骤]
GOOGLESHEETS_UPDATE_SHEET_PROPERTIES
关键参数:
- : 电子表格ID
spreadsheet_id - : 数字形式的sheetId(而非标签页名称);从GET_SPREADSHEET_INFO获取
worksheet_id - : A1表示法(例如'A1:F1') - 优先于索引字段
range - ,
bold,italic,underline: 布尔型格式选项strikethrough - ,
red,green: 背景色,取值为0.0-1.0的浮点数(而非0-255的整数)blue - : 字号(单位为磅)
fontSize
注意事项:
- 需要数字形式的,而非标签页标题;需从电子表格元数据中获取
worksheet_id - 颜色通道值为0-1的浮点数(例如1.0表示纯红色),而非0-255的整数
- 响应可能返回空对象数组([{}]);需通过回读验证格式设置是否生效
- 每次调用仅能格式化一个区域;批量格式化需要单独调用
Common Patterns
常见模式
ID Resolution
ID解析
- Spreadsheet name -> ID: with
GOOGLESHEETS_SEARCH_SPREADSHEETSquery - Tab name -> sheetId: , extract from sheets metadata
GOOGLESHEETS_GET_SPREADSHEET_INFO - Tab existence check:
GOOGLESHEETS_FIND_WORKSHEET_BY_TITLE
- 电子表格名称 -> ID: 使用带参数的
queryGOOGLESHEETS_SEARCH_SPREADSHEETS - 标签页名称 -> sheetId: 使用,从工作表元数据中提取
GOOGLESHEETS_GET_SPREADSHEET_INFO - 标签页存在性检查: 使用
GOOGLESHEETS_FIND_WORKSHEET_BY_TITLE
Rate Limits
速率限制
Google Sheets enforces strict rate limits:
- Max 60 reads/minute and 60 writes/minute
- Exceeding limits causes errors; batch operations where possible
- Use and
GOOGLESHEETS_BATCH_GETfor efficiencyGOOGLESHEETS_BATCH_UPDATE
Google Sheets实施严格的速率限制:
- 最多60次读取/分钟,60次写入/分钟
- 超出限制会触发错误;尽可能使用批量操作
- 为提高效率,使用和
GOOGLESHEETS_BATCH_GETGOOGLESHEETS_BATCH_UPDATE
Data Patterns
数据模式
- Always read before writing to understand existing layout
- Use for CRM syncs, inventory updates, and dedup scenarios
GOOGLESHEETS_UPSERT_ROWS - Append mode (omit ) is safest for adding new records
first_cell_location - Use to clear content while preserving formatting
GOOGLESHEETS_CLEAR_VALUES
- 写入前务必先读取,以了解现有布局
- CRM同步、库存更新和去重场景下使用
GOOGLESHEETS_UPSERT_ROWS - 添加新记录时,使用追加模式(省略)最为安全
first_cell_location - 使用清除内容,同时保留格式设置
GOOGLESHEETS_CLEAR_VALUES
Known Pitfalls
已知注意事项
- Tab names: Locale-dependent defaults; 'Sheet1' may not exist in non-English accounts
- Range notation: Sheet names with spaces need single quotes in A1 notation
- Unbounded ranges: Can timeout on large sheets; always specify row bounds (e.g., 'A1:Z10000')
- 2D arrays: All value parameters must be list-of-lists, even for single rows
- Color values: Floats 0.0-1.0, not integers 0-255
- Formatting IDs: needs numeric sheetId, not tab title
FORMAT_CELL - Rate limits: 60 reads/min and 60 writes/min; batch to stay within limits
- Delete dimension: is irreversible; double-check bounds
GOOGLESHEETS_DELETE_DIMENSION
- 标签页名称: 默认名称取决于区域设置;非英文账户中可能不存在'Sheet1'
- 区域表示法: 名称包含空格的标签页,在A1表示法中需要用单引号括起来
- 无界区域: 在大型工作表上可能会超时;始终要指定行边界(例如'A1:Z10000')
- 二维数组: 所有值参数必须是列表的列表,即使是单行数据也需如此
- 颜色值: 取值为0.0-1.0的浮点数,而非0-255的整数
- 格式化ID: 需要数字形式的sheetId,而非标签页标题
FORMAT_CELL - 速率限制: 60次读取/分钟,60次写入/分钟;通过批量操作控制在限制范围内
- 删除维度: 操作不可逆;请仔细检查边界
GOOGLESHEETS_DELETE_DIMENSION
Quick Reference
快速参考
| Task | Tool Slug | Key Params |
|---|---|---|
| Search spreadsheets | | |
| Create spreadsheet | | |
| List tabs | | |
| Add tab | | |
| Read data | | |
| Read single range | | |
| Write data | | |
| Update range | | |
| Append rows | | |
| Upsert rows | | |
| Lookup row | | |
| Format cells | | |
| Set filter | | |
| Clear values | | |
| Delete rows/cols | | |
| Spreadsheet info | | |
| Update tab props | | |
| 任务 | 工具标识 | 关键参数 |
|---|---|---|
| 搜索电子表格 | | |
| 创建电子表格 | | |
| 列出标签页 | | |
| 添加标签页 | | |
| 读取数据 | | |
| 读取单个区域 | | |
| 写入数据 | | |
| 更新区域 | | |
| 追加行 | | |
| Upsert行 | | |
| 查找行 | | |
| 格式化单元格 | | |
| 设置筛选器 | | |
| 清除值 | | |
| 删除行/列 | | |
| 电子表格信息 | | |
| 更新标签页属性 | | |