OA0 = Omni AI 0
OA0 是一个探索 AI 的论坛
现在注册
已注册用户请  登录
OA0  ›  技能包  ›  google-sheet:自动化读写与维护 Google 表格数据

google-sheet:自动化读写与维护 Google 表格数据

 
  user ·  2026-02-05 09:55:59 · 3 次点击  · 0 条评论  

名称: google-sheets
描述: 通过 Google Sheets API (Node.js SDK) 读取、写入、追加和管理 Google Sheets。适用于需要与电子表格交互的场景——读取数据、写入/更新单元格、追加行、清除范围、格式化单元格、管理工作表。需要已启用 Sheets API 的 Google Cloud 服务账号。


Google Sheets 技能

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

设置(一次性)

  1. Google Cloud 控制台:

    • 创建/选择一个项目
    • 启用 "Google Sheets API"
    • 创建服务账号 (IAM → 服务账号 → 创建)
    • 下载 JSON 密钥文件
  2. 配置凭据 (任选其一):

    • 设置环境变量:GOOGLE_SERVICE_ACCOUNT_KEY=/path/to/key.json
    • service-account.jsoncredentials.json 文件放置在技能目录中
    • 放置在 ~/.config/google-sheets/credentials.json
  3. 将电子表格共享给服务账号邮箱 (邮箱地址位于 JSON 密钥文件的 client_email 字段中)

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

使用方法

node scripts/sheets.js <命令> [参数]

命令列表

数据操作

命令 参数 描述
read <电子表格ID> <范围> 读取单元格数据
write <电子表格ID> <范围> <JSON数据> 写入数据
append <电子表格ID> <范围> <JSON数据> 追加行数据
clear <电子表格ID> <范围> 清除指定范围

格式设置

命令 参数 描述
format <电子表格ID> <范围> <格式JSON> 格式化单元格
getFormat <电子表格ID> <范围> 获取单元格格式
borders <电子表格ID> <范围> [样式JSON] 添加边框
copyFormat <电子表格ID> <源范围> <目标范围> 复制格式到另一范围
merge <电子表格ID> <范围> 合并单元格
unmerge <电子表格ID> <范围> 取消合并单元格

布局调整

命令 参数 描述
resize <电子表格ID> <工作表名> <列\|行> <起始> <结束> <像素值> 调整列宽/行高
autoResize <电子表格ID> <工作表名> <起始列> <结束列> 自动调整列宽
freeze <电子表格ID> <工作表名> [行数] [列数] 冻结行/列

工作表管理

命令 参数 描述
create <标题> 创建电子表格
info <电子表格ID> 获取元数据
addSheet <电子表格ID> <标题> 添加工作表标签页
deleteSheet <电子表格ID> <工作表名> 删除工作表标签页
renameSheet <电子表格ID> <旧名称> <新名称> 重命名工作表标签页

使用示例

# 读取数据
node scripts/sheets.js read "SPREADSHEET_ID" "Sheet1!A1:C10"

# 写入数据
node scripts/sheets.js write "SPREADSHEET_ID" "Sheet1!A1:B2" '[["姓名","分数"],["Alice",95]]'

# 格式化单元格 (黄色背景,粗体)
node scripts/sheets.js format "SPREADSHEET_ID" "Sheet1!A1:B2" '{"backgroundColor":{"red":255,"green":255,"blue":0},"textFormat":{"bold":true}}'

# 将格式从一个范围复制到另一个范围
node scripts/sheets.js copyFormat "SPREADSHEET_ID" "Sheet1!A1:C3" "Sheet1!D1:F3"

# 添加边框
node scripts/sheets.js borders "SPREADSHEET_ID" "Sheet1!A1:C3"

# 调整列宽为 150 像素
node scripts/sheets.js resize "SPREADSHEET_ID" "Sheet1" cols A C 150

# 自动调整列宽
node scripts/sheets.js autoResize "SPREADSHEET_ID" "Sheet1" A Z

# 冻结首行和首列
node scripts/sheets.js freeze "SPREADSHEET_ID" "Sheet1" 1 1

# 添加新的工作表标签页
node scripts/sheets.js addSheet "SPREADSHEET_ID" "NewSheet"

格式选项

{
  "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"
}

边框样式

{
  "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 禁止访问:电子表格未共享给服务账号邮箱
  • 404 未找到:电子表格 ID 或工作表名称错误
3 次点击  ∙  0 人收藏  
登录后收藏  
目前尚无回复
0 条回复
About   ·   Help   ·    
OA0 - Omni AI 0 一个探索 AI 的社区
沪ICP备2024103595号-2
Developed with Cursor