ClawSkills logoClawSkills

Skill to manage and update google sheet

通过 Google Sheets API (Node.js SDK) 读取、写入、追加和管理 Google Sheets。当您需要与电子表格交互时使用——读取数据、写入/u

介绍

# Google Sheets Skill

使用服务账户与 Google Sheets 进行交互。

## 设置(一次性)

1. **Google Cloud Console:** - 创建/选择一个项目 - 启用“Google Sheets API” - 创建服务账户(IAM → Service Accounts → Create) - 下载 JSON 密钥

2. **配置凭据**(选择以下任意一种): - 设置环境变量:`GOOGLE_SERVICE_ACCOUNT_KEY=/path/to/key.json` - 将 `service-account.json` 或 `credentials.json` 放置在技能目录中 - 放置在 `~/.config/google-sheets/credentials.json`

3. **共享电子表格**,授予服务账户电子邮件权限(可在 JSON 密钥的 `client_email` 字段中找到)

4. **安装依赖:** ```bash cd skills/google-sheets && npm install ```

## 用法

```bash node scripts/sheets.js <command> [args] ```

## 命令

### 数据操作

| 命令 | 参数 | 描述 | |---------|------|-------------| | `read` | `<id> <range>` | 读取单元格 | | `write` | `<id> <range> <json>` | 写入数据 | | `append` | `<id> <range> <json>` | 追加行 | | `clear` | `<id> <range>` | 清除范围 |

### 格式设置

| 命令 | 参数 | 描述 | |---------|------|-------------| | `format` | `<id> <range> <formatJson>` | 设置单元格格式 | | `getFormat` | `<id> <range>` | 获取单元格格式 | | `borders` | `<id> <range> [styleJson]` | 添加边框 | | `copyFormat` | `<id> <source> <dest>` | 在范围之间复制格式 | | `merge` | `<id> <range>` | 合并单元格 | | `unmerge` | `<id> <range>` | 取消合并单元格 |

### 布局

| 命令 | 参数 | 描述 | |---------|------|-------------| | `resize` | `<id> <sheet> <cols\|rows> <start> <end> <px>` | 调整列/行大小 | | `autoResize` | `<id> <sheet> <startCol> <endCol>` | 自动调整列宽 | | `freeze` | `<id> <sheet> [rows] [cols]` | 冻结行/列 |

### 工作表管理

| 命令 | 参数 | 描述 | |---------|------|-------------| | `create` | `<title>` | 创建电子表格 | | `info` | `<id>` | 获取元数据 | | `addSheet` | `<id> <title>` | 添加工作表标签 | | `deleteSheet` | `<id> <sheetName>` | 删除工作表标签 | | `renameSheet` | `<id> <oldName> <newName>` | 重命名工作表标签 |

## 示例

```bash # Read data node scripts/sheets.js read "SPREADSHEET_ID" "Sheet1!A1:C10"

# Write data node scripts/sheets.js write "SPREADSHEET_ID" "Sheet1!A1:B2" '[["Name","Score"],["Alice",95]]'

# Format cells (yellow bg, bold) node scripts/sheets.js format "SPREADSHEET_ID" "Sheet1!A1:B2" '{"backgroundColor":{"red":255,"green":255,"blue":0},"textFormat":{"bold":true}}'

# Copy format from one range to another node scripts/sheets.js copyFormat "SPREADSHEET_ID" "Sheet1!A1:C3" "Sheet1!D1:F3"

# Add borders node scripts/sheets.js borders "SPREADSHEET_ID" "Sheet1!A1:C3"

# Resize columns to 150px node scripts/sheets.js resize "SPREADSHEET_ID" "Sheet1" cols A C 150

# Auto-fit column widths node scripts/sheets.js autoResize "SPREADSHEET_ID" "Sheet1" A Z

# Freeze first row and column node scripts/sheets.js freeze "SPREADSHEET_ID" "Sheet1" 1 1

# Add new sheet tab node scripts/sheets.js addSheet "SPREADSHEET_ID" "NewSheet" ```

## 格式选项

```json { "backgroundColor": {"red": 255, "green": 255, "blue": 0}, "textFormat": { "bold": true, "italic": false, "fontSize": 12, "foregroundColor": {"red": 0, "green": 0, "blue": 0} }, "horizontalAlignment": "CENTER", "verticalAlignment": "MIDDLE", "wrapStrategy": "WRAP" } ```

## 边框样式

```json { "style": "SOLID", "color": {"red": 0, "green": 0, "blue": 0} } ```

边框样式:DOTTED, DASHED, SOLID, SOLID_MEDIUM, SOLID_THICK, DOUBLE

## 查找电子表格 ID

从 URL 中获取:`https://docs.google.com/spreadsheets/d/SPREADSHEET_ID/edit`

## 故障排除

- **403 Forbidden**:电子表格未与服务账户电子邮件共享 - **404 Not Found**:电子表格 ID 或工作表名称错误

更多产品