jianzhihuixiang/skills/tencent-docs/sheet/api/mcp-api.md

289 lines
5.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Sheet 表格操作参考文档
本文件包含腾讯文档 MCP 中 Sheet在线表格相关工具的完整 API 说明、详细调用示例、参数说明和返回值说明。
---
## 通用说明
### Sheet 工具概述
Sheet 工具专门用于操作腾讯文档中的在线表格Excel格式提供表格信息的查询、范围数据的获取以及批量更新等功能。
### 响应结构
所有 API 返回都包含:
- `error`: 错误信息(成功时为空)
- `trace_id`: 调用链追踪 ID
### 表格范围表示法
Sheet 工具使用 A1 表示法来指定表格范围:
- `A1`: 单个单元格
- `A1:B10`: 矩形区域
- `Sheet1!A1:B10`: 指定工作表名称的范围
---
## 工具调用示例
## 1. GetSheetInfo
### 功能说明
查询工作表的基本信息包括所有子表的ID、标题、大小和已使用的行列数。
### 调用示例
```json
{
"file_id": "sheet_1234567890"
}
```
### 参数说明
- `file_id` (string, 必填): 表格文件唯一标识符
### 返回值说明
```json
{
"sheet_info": {
"file_id": "sheet_1234567890",
"title": "销售数据表",
"sheets": [
{
"sheet_id": "sht1234567890",
"title": "Sheet1",
"row_count": 100,
"column_count": 10,
"used_row_count": 50,
"used_column_count": 5
}
]
},
"error": "",
"trace_id": "trace_1234567890"
}
```
## 2. GetSheetRange
### 功能说明
获取指定范围内的在线表格信息,支持 A1 表示法指定查询范围。
### 调用示例
```json
{
"file_id": "sheet_1234567890",
"range": "A1:C10"
}
```
### 参数说明
- `file_id` (string, 必填): 表格文件唯一标识符
- `range` (string, 必填): 查询范围,使用 A1 表示法
- `sheet_id` (string, 可选): 工作表ID不指定时使用默认工作表
### 返回值说明
```json
{
"range_data": {
"range": "A1:C10",
"values": [
["姓名", "年龄", "部门"],
["张三", "25", "技术部"],
["李四", "30", "产品部"]
]
},
"error": "",
"trace_id": "trace_1234567890"
}
```
## 3. BatchUpdateSheet
### 功能说明
批量执行对在线表格的更新操作,支持添加工作表、更新单元格内容、删除行列、删除工作表等多种操作。
### 调用示例
```json
{
"file_id": "sheet_1234567890",
"requests": [
{
"add_sheet": {
"properties": {
"title": "新工作表"
}
}
},
{
"update_cells": {
"range": "A1:B2",
"rows": [
{"values": ["标题1", "标题2"]},
{"values": ["数据1", "数据2"]}
]
}
}
]
}
```
### 参数说明
- `file_id` (string, 必填): 表格文件唯一标识符
- `requests` (array, 必填): 批量操作请求列表单次请求的操作数量不大于5
### 支持的操作类型
#### 添加工作表
```json
{
"add_sheet": {
"properties": {
"title": "工作表标题",
"index": 0
}
}
}
```
#### 更新单元格
```json
{
"update_cells": {
"range": "A1:B2",
"rows": [
{"values": ["值1", "值2"]},
{"values": ["值3", "值4"]}
]
}
}
```
#### 删除行列
```json
{
"delete_dimension": {
"range": {
"sheet_id": "sht1234567890",
"dimension": "ROWS",
"start_index": 5,
"end_index": 10
}
}
}
```
#### 删除工作表
```json
{
"delete_sheet": {
"sheet_id": "sht1234567890"
}
}
```
### 返回值说明
```json
{
"replies": [
{
"add_sheet": {
"properties": {
"sheet_id": "sht1234567890",
"title": "新工作表",
"index": 1
}
}
}
],
"error": "",
"trace_id": "trace_1234567890"
}
```
---
## 典型工作流示例
### 工作流 1查询表格信息并获取数据
```bash
# 1. 获取表格基本信息
mcporter call "tencent-docs.GetSheetInfo" --args '{"file_id":"sheet_1234567890"}'
# 2. 获取指定范围的数据
mcporter call "tencent-docs.GetSheetRange" --args '{"file_id":"sheet_1234567890","range":"A1:C10"}'
```
# 2. 批量更新表格内容
```bash
# 1. 批量更新单元格内容
mcporter call "tencent-docs.BatchUpdateSheet" --args '{
"file_id": "sheet_1234567890",
"requests": [
{
"update_cells": {
"range": "A1:B2",
"rows": [
{"values": ["标题1", "标题2"]},
{"values": ["数据1", "数据2"]}
]
}
}
]
}'
```
### 工作流 3管理工作表结构
```bash
# 1. 添加新工作表
mcporter call "tencent-docs.BatchUpdateSheet" --args '{
"file_id": "sheet_1234567890",
"requests": [
{
"add_sheet": {
"properties": {
"title": "2024年数据"
}
}
}
]
}'
# 2. 删除不需要的工作表
mcporter call "tencent-docs.BatchUpdateSheet" --args '{
"file_id": "sheet_1234567890",
"requests": [
{
"delete_sheet": {
"sheet_id": "sht1234567890"
}
}
]
}'
```
---
## 注意事项
### 范围限制
- `GetSheetRange` 单次查询范围限制行数≤1000列数≤200单元格总数≤10000
- `BatchUpdateSheet` 单次请求的操作数量不大于5
### 数据格式
- 单元格数据使用二维数组表示,第一维是行,第二维是列
- 空单元格使用空字符串表示
- 数值类型的数据会自动转换为字符串
### 性能建议
- 对于大数据量的更新,建议使用 `BatchUpdateSheet` 进行批量操作
- 查询大范围数据时,建议分页获取数据
- 避免频繁的小范围更新操作
### 错误处理
- 如果范围超出表格边界,会返回错误信息
- 如果工作表不存在,会返回相应的错误提示
- 批量操作中某个操作失败时,整个批量操作会回滚