Install
openclaw skills install @muippt/mu-excel-toolboxExcel全能工具箱:读写、预览、合并、拆分、关联、去重、清洗、校验、模板填充、样式、条件格式、公式、图表、透视表、数据分析、差异对比、图片插入、密码保护。典型场景:月度业务报表合并汇总、HR花名册/考勤表关联清洗、运营数据透视分析、绩效数据校验去重、批量生成offer/通知模板、薪酬表加密保护、业务周报图表生成。触发词:Excel、表格、xlsx、csv、电子表格、合并Excel、拆分Excel、Excel图表、数据透视表、Excel公式、条件格式、数据清洗、Excel模板、Excel对比、Excel加密、VLOOKUP、去重、数据校验、统计分析、格式转换、业务报表、花名册、考勤表、绩效数据、运营数据、excel toolbox、spreadsheet、merge excel、split excel、excel chart、pivot table。即使用户没有明说'用Excel工具箱',只要涉及Excel/表格/xlsx/csv文件的操作都应触发。不适用:在线协作编辑(用Google Sheets等在线工具)、纯代码开发、Skill管理。
openclaw skills install @muippt/mu-excel-toolboxIRON LAW:①操作前必须先 peek 了解文件结构(WHY:盲操作=猜列名猜Sheet名,错误率极高);②写入/修改操作必须保留原文件备份(WHY:Excel 操作不可逆,无备份=数据丢失风险);③大文件(>10万行)必须用流式模式(WHY:全量加载会撑爆内存导致进程被 kill);④输出文件路径必须用绝对路径并确认目录存在(WHY:相对路径在不同 cwd 下行为不一致)。
根据用户意图匹配对应脚本。所有脚本位于
scripts/目录下
| # | 功能 | 脚本 | 场景举例 |
|---|---|---|---|
| 1 | 📋 智能预览 | peek.py | "帮我看看这个Excel有几个Sheet、每个Sheet有什么列" |
| 2 | 📖 读取Excel | read_excel.py | "读取sales.xlsx的Sheet2,取A~D列前100行" |
| 3 | ✏️ 写入/创建 | write_excel.py | "把这份数据生成一个Excel文件" |
| 4 | 🔄 格式互转 | convert.py | "把这个csv转成xlsx"、"把Excel导出为JSON" |
| 5 | 📎 合并文件 | merge.py | "把这5个月度报表合并成一个年度汇总表" |
| 6 | ✂️ 拆分文件 | split.py | "把大表按Sheet拆成独立文件" |
| 7 | ✂️ 按列值拆分 | split.py --mode by-column | "按'部门'列拆分,每个部门一个独立Excel" |
| 8 | 🔗 VLOOKUP/关联 | vlookup.py | "用工号把花名册和考勤表关联起来" |
| 9 | 🧹 去重 | dedup.py | "按姓名+手机号去重,保留最新的那条" |
| 10 | 🧽 数据清洗 | clean.py | "把空行删掉,手机号统一11位,日期统一YYYY-MM-DD" |
| 11 | 📄 模板填充 | template_fill.py | "用员工数据批量生成offer letter" |
| 12 | ✅ 数据校验 | validate.py | "检查哪些行邮箱格式不对、哪些工号重复了" |
| 13 | 🎨 条件格式 | style.py --mode conditional | "绩效低于60标红,高于90标绿" |
| 14 | 💅 样式排版 | style.py | "给表头加粗加背景色,列宽自适应,加边框" |
| 15 | 📐 函数公式 | formula.py | "在E列加SUM公式汇总B~D列" |
| 16 | 📊 图表生成 | chart.py | "用销售数据生成柱状图+折线图组合" |
| 17 | 📈 数据透视表 | pivot.py | "按部门和月份交叉汇总销售额" |
| 18 | 🔬 数据分析 | analyze.py | "给我这份数据的统计摘要:均值、中位数、分布" |
| 19 | 🔍 差异对比 | diff.py | "对比两版花名册,哪些人新增/离职/信息变更" |
| 20 | 🖼️ 图片插入 | image.py | "在每个员工对应行插入照片" |
| 21 | 🔒 密码保护 | protect.py | "给薪酬表加密码保护"、"解密这个加密的Excel" |
| 22 | ⚡ 大文件处理 | 自动触发 | 超10万行自动切换流式模式,坏行跳过并汇报 |
首次调用任何脚本时,utils.py 会自动检测并安装缺失依赖(版本锁定,120s 超时兆底)。安装完成后自动验证导入成功才继续执行。
手动安装(仅当自动安装失败时):
cd scripts/
pip install -r requirements.txt
# 1. 先看文件结构
python3 peek.py input.xlsx
# 2. 根据需要操作
python3 read_excel.py input.xlsx --sheet Sheet1 --format json
python3 merge.py file1.xlsx file2.xlsx --output merged.xlsx
python3 chart.py data.xlsx --type bar --x-column 月份 --y-columns 销售额 --output report.xlsx
原文件名_backup_时间戳.xlsx)read_only/write_only 模式,防止内存溢出--format(json/csv/markdown/table)| 库 | 用途 |
|---|---|
| openpyxl | 核心读写 + 样式 + 公式 |
| pandas | 数据分析 + 透视 + 清洗 |
| xlsxwriter | 高性能写入 + 图表渲染 |
| xlrd | .xls 旧格式只读兼容 |
| msoffcrypto-tool | 文件级加密/解密 |
| numpy | 数值计算(分析/清洗) |
data_only=True,但保存后公式消失。需要公式时不加此参数FF0000),不要加 # 前缀--encoding gbk 参数处理{{字段名}} 语法,字段名必须与数据源列名完全一致(含大小写)必读文件:SKILL.md
不可跳过的硬 Gate:
peek.py 了解文件结构禁止行为:
| # | 反模式 | 正确做法 |
|---|---|---|
| 1 | 不看文件结构直接操作 | 先 peek.py 确认 Sheet/列名/行数 |
| 2 | 猜测列名填参数 | 从 peek 结果中复制精确列名 |
| 3 | 大文件全量加载 | utils.py 自动检测并切换流式模式 |
| 4 | 覆盖原文件 | 输出到新路径或让 safe_write 自动备份 |
| 5 | 硬编码文件路径 | 用用户提供的路径,不假设固定位置 |
| 6 | 忽略错误继续 | 用 ErrorCollector 收集所有错误最后汇报 |
| 文件 | 说明 |
|---|---|
| references/api-reference.md | 各脚本完整参数说明 + 代码示例 |
| references/examples.md | 22 个功能的场景举例合集 |