mcpField
G
google-sheets

google-sheets

github.com/sanjay3290文档处理447469 次安装7 周前更新
代码仓库

关于 google-sheets

面向 Google Workspace 用户的 Google Sheets 命令行技能,使用独立 OAuth 提供完整读写操作。可将表格内容输出为文本、CSV 或 JSON。

主要功能

  1. 01OAuth 登录与令牌刷新
  2. 02以文本、CSV 或 JSON 读取表格
  3. 03更新单元格范围
  4. 04追加行
  5. 05使用 RAW 或用户输入值

适用场景

  1. 01按所需格式查看表格数据
  2. 02修改单元格范围中的值
  3. 03在现有数据后添加行

MCP 相关

此技能使用独立 OAuth,不需要 MCP 服务。

安装

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

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

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

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

README.md
requirements.txt
scripts/
auth.py
requirements.txt
sheets.py

详细介绍

Google Sheets

轻量级 Google Sheets 集成,采用独立的 OAuth 身份验证。无需 MCP 服务。支持完整的读写权限。

需要 Google Workspace 账号。 不支持个人 Gmail 账号。

首次设置

通过 Google 进行身份验证(将打开浏览器):

python scripts/auth.py login

检查身份验证状态:

python scripts/auth.py status

需要时退出登录:

python scripts/auth.py logout

读取命令

所有操作均通过 scripts/sheets.py 完成。若尚未登录,首次使用时会自动进行身份验证。

# Get spreadsheet content as plain text (default)
python scripts/sheets.py get-text SPREADSHEET_ID

# Get spreadsheet content as CSV
python scripts/sheets.py get-text SPREADSHEET_ID --format csv

# Get spreadsheet content as JSON
python scripts/sheets.py get-text SPREADSHEET_ID --format json

# Get values from a specific range (A1 notation)
python scripts/sheets.py get-range SPREADSHEET_ID "Sheet1!A1:D10"
python scripts/sheets.py get-range SPREADSHEET_ID "A1:C5"

# Find spreadsheets by search query
python scripts/sheets.py find "budget 2024"
python scripts/sheets.py find "sales report" --limit 5

# Get spreadsheet metadata (sheets, dimensions, etc.)
python scripts/sheets.py get-metadata SPREADSHEET_ID

写入命令

# Update a range of cells with values (JSON 2D array)
python scripts/sheets.py update-range SPREADSHEET_ID "Sheet1!A1:B2" '[["Hello","World"],["Foo","Bar"]]'

# Update with RAW input (no formula parsing, treats everything as literal text)
python scripts/sheets.py update-range SPREADSHEET_ID "Sheet1!A1:B1" '[["=SUM(A1:A5)","text"]]' --raw

# Append rows after the last data row
python scripts/sheets.py append-rows SPREADSHEET_ID "Sheet1!A:Z" '[["New Row Col A","New Row Col B"]]'

# Clear values from a range (keeps formatting)
python scripts/sheets.py clear-range SPREADSHEET_ID "Sheet1!A1:B10"

# Batch update (advanced - for formatting, merging, etc.)
python scripts/sheets.py batch-update SPREADSHEET_ID '[{"updateCells":{"range":{"sheetId":0},"fields":"userEnteredValue"}}]'

电子表格 ID

你可以使用以下任一形式:

  • 电子表格 ID:1BxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgvE2upms
  • 完整 URL:https://docs.google.com/spreadsheets/d/1BxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgvE2upms/edit

脚本会自动从 URL 中提取 ID。

输出格式

文本(默认)

使用竖线分隔的易读格式:

Spreadsheet Title: Sales Data
Sheet Name: Q1
Name | Revenue | Units
Product A | 10000 | 50
Product B | 15000 | 75
CSV

适合进一步处理的标准 CSV 格式:

Name,Revenue,Units
Product A,10000,50
Product B,15000,75
JSON

结构化数据格式:

{
  "Q1": [
    ["Name", "Revenue", "Units"],
    ["Product A", "10000", "50"]
  ]
}

A1 表示法示例

  • Sheet1!A1:B10 - Sheet1 中从 A1 到 B10 的范围
  • Sheet1!A:A - Sheet1 中的 A 列
  • Sheet1!1:1 - Sheet1 中的第 1 行
  • A1:C5 - 第一个工作表中的范围

值输入选项

  • USER_ENTERED(默认):值会按用户输入的内容进行解析。数字、日期和公式都会被识别。
  • RAW(--raw 标志):值会按提供的内容原样存储。不解析公式或数字格式。

令牌管理

令牌使用系统密钥环安全存储:

  • macOS:钥匙串
  • Windows:Windows 凭据管理器
  • Linux:Secret Service API(GNOME Keyring、KDE Wallet 等)

服务名称:google-sheets-skill-oauth

令牌过期后,会通过 Google 的云函数自动刷新。

评论

支持 Markdown