excel-workbook · git:20260923.cceec3e · 2026-09-23 · sha256 a06bd367851419b5
excel-workbook git:20260923.cceec3eA
Immutable. This exact content never changes and is served at /api/v1/blob/a06bd367851419b5.
---
name: excel-workbook
description: "使用此 Skill 创建、检查、编辑和验证 XLSX 工作簿。用户提到 Excel、xlsx、工作簿、工作表、表格,或要求修改、汇总、检查 Excel 文件时使用。只支持基础 XLSX 操作,不处理宏、VBA、图表、数据透视表或外部工作簿引用。"
allowed-tools:
- Bash
---
# Excel 工作簿基础操作
当用户要求创建、检查、编辑或验证 `.xlsx` 文件时使用本 Skill。
## 支持范围
支持以下基础操作:
- 检查工作簿、工作表、行列范围、公式、日期和合并单元格;
- 创建包含表头、数据和简单公式的新工作簿;
- 编辑单元格、追加行和基础数字格式;
- 保留已有工作表、公式、日期、数据类型和未修改区域的基础样式;
- 重新打开输出文件,验证关键内容;
- 设置 Excel/WPS 打开文件时自动重算的标记。
当前版本只支持 `.xlsx`。不处理 `.xlsm` 宏、VBA、图表、数据透视表、
Power Query、外部工作簿引用或复杂财务模型。
## 工作原则
1. 先检查,再修改。
2. 默认不覆盖原文件;编辑时输入文件和输出文件必须是不同路径。
3. 修改现有模板时,只改用户指定的单元格或区域,不重建整个工作簿。
4. 日期、数字和公式要保持正确的数据类型。公式字符串被写入不等于公式已经计算。
5. 修改后必须重新打开输出文件并验证。
6. 没有 Excel、WPS 或 LibreOffice 重算结果时,不要声称公式结果已经验证。
## 工具脚本
脚本位于当前 Skill 的 `scripts/workbook_tool.py`:
```text
python scripts/workbook_tool.py inspect input.xlsx
python scripts/workbook_tool.py create output.xlsx --spec spec.json
python scripts/workbook_tool.py edit input.xlsx output.xlsx --operations operations.json
python scripts/workbook_tool.py validate output.xlsx --expect expectations.json
python scripts/workbook_tool.py recalc output.xlsx
```
所有命令默认输出 JSON,便于继续检查和记录。
### 创建数据格式
`create` 的 spec 使用以下结构:
```json
{
"sheet": "销售数据",
"headers": ["日期", "商品", "金额", "含税金额"],
"rows": [
[
{"date": "2026-09-16"},
"A",
100,
{"formula": "=C2*1.1"}
]
],
"column_widths": {"A": 14, "C": 12, "D": 14}
}
```
日期使用 `{"date": "YYYY-MM-DD"}`,公式使用 `{"formula": "=..."}`。
### 编辑数据格式
`edit` 的 operations 使用以下结构:
```json
{
"set_cells": [
{"sheet": "销售数据", "cell": "C2", "value": 120},
{"sheet": "销售数据", "cell": "D2", "formula": "=C2*1.1"},
{"sheet": "销售数据", "cell": "A2", "date": "2026-09-17"}
],
"append_rows": [
{
"sheet": "销售数据",
"values": [{"date": "2026-09-18"}, "B", 80, {"formula": "=C3*1.1"}]
}
],
"number_formats": [
{"sheet": "销售数据", "cell": "C2", "format": "#,##0.00"}
]
}
```
### 验证数据格式
`validate` 的 expectations 使用以下结构:
```json
{
"sheets": ["销售数据"],
"cells": {
"销售数据!C2": 120,
"销售数据!D2": "=C2*1.1",
"销售数据!A2": {"date": "2026-09-17"}
},
"required_formulas": ["销售数据!D2"]
}
```
## 重算边界
`recalc` 会先设置:
```text
calcMode=auto
fullCalcOnLoad=true
forceFullCalc=true
```
如果本机存在 LibreOffice,脚本会尝试执行无界面重算;否则返回
`unavailable`,并明确说明只设置了 Excel/WPS 打开时重算标记。
## 交付格式
完成后说明:
```text
输入文件:
输出文件:
执行操作:
保留内容:
验证结果:
未完成的检查:
```