mcpField
G
google-sheets

google-sheets

github.com/acedatacloud文档处理17170 次安装1 天前更新
代码仓库

关于 google-sheets

通过 curl 和 jq 调用 Sheets API 读写 Google Sheets 的技能,适合需要以命令行处理表格的场景。支持查看表格信息、操作单元格值、创建表格和添加工作表,并说明 OAuth 权限范围要求。

主要功能

  1. 01查看表格标题和工作表标签
  2. 02按 A1 表示法读取区域
  3. 03追加行并更新单元格值
  4. 04创建表格并添加工作表
  5. 05处理 OAuth 权限范围与输入模式

适用场景

  1. 01查看表格结构和内容
  2. 02追加行或更新单元格区域
  3. 03创建报告用电子表格
  4. 04为现有文件添加工作表标签

安装

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

$npx skills add https://github.com/acedatacloud/skills --skill google-sheets

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

详细介绍

通过 curl + jq 操作 Google Sheets。用户的 OAuth bearer token 位于 $GOOGLE_SHEETS_TOKEN;每次调用都需要 Authorization: Bearer $GOOGLE_SHEETS_TOKEN。基础 URL:https://sheets.googleapis.com/v4/spreadsheets。 此 token 包含 spreadsheets.readonly(及身份验证)权限;写入需要更广泛的 spreadsheets 权限。

失败时会返回 {"error":{"code","message","status"}}——原样显示。401 = 重新安装。写入时出现 403 PERMISSION_DENIED = 只读权限范围 → 重新连接并授予读写权限。

电子表格 ID 是 URL 中的 …/spreadsheets/d/<ID>/edit 部分。

S="https://sheets.googleapis.com/v4/spreadsheets"; AUTH="Authorization: Bearer $GOOGLE_SHEETS_TOKEN"
# Tabs + title
curl -sS -H "$AUTH" "$S/SPREADSHEET_ID?fields=properties.title,sheets.properties(title,sheetId)" \
  | jq '{title: .properties.title, tabs: [.sheets[].properties.title]}'

读取 / 追加 / 更新值

ID="SPREADSHEET_ID"
# Read a range (A1 notation; values are rows of cells)
curl -sS -H "$AUTH" "$S/$ID/values/Sheet1!A1:D20" | jq '.values'

# Append rows (confirm first). valueInputOption=USER_ENTERED parses formulas/dates.
curl -sS -X POST -H "$AUTH" -H "Content-Type: application/json" \
  -d '{"values":[["2026-06-21","Acme",4200]]}' \
  "$S/$ID/values/Sheet1!A1:append?valueInputOption=USER_ENTERED" | jq '.updates'

# Update a fixed range: PUT /values/{range}?valueInputOption=USER_ENTERED
curl -sS -X PUT -H "$AUTH" -H "Content-Type: application/json" \
  -d '{"values":[["done"]]}' \
  "$S/$ID/values/Sheet1!E2?valueInputOption=USER_ENTERED" | jq '.updatedCells'

创建电子表格 / 添加工作表

# New spreadsheet
curl -sS -X POST -H "$AUTH" -H "Content-Type: application/json" \
  -d '{"properties":{"title":"Report 2026"}}' "$S" | jq '{spreadsheetId, spreadsheetUrl}'

# Add a tab via batchUpdate (addSheet request)
curl -sS -X POST -H "$AUTH" -H "Content-Type: application/json" \
  -d '{"requests":[{"addSheet":{"properties":{"title":"Q3"}}}]}' \
  "$S/$ID:batchUpdate" | jq '.replies'

注意事项

  • A1 表示法: Sheet1!A1:D20;工作表名称中有空格时,用引号括起,例如 'My Tab'!A1。
  • valueInputOption=RAW 会原样存储字符串;USER_ENTERED 会像 UI 一样解析内容(数字、日期、=FORMULA)。请谨慎选择。
  • values 按行排列([[row1...],[row2...]]);缺失的尾部单元格返回的结果会较短——不要假定数据是矩形。

评论

支持 Markdown