一键导入
excel
用于读取、生成、编辑或分析 Excel 文件,以及处理公式重算、图表、透视表等电子表格任务。
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
用于读取、生成、编辑或分析 Excel 文件,以及处理公式重算、图表、透视表等电子表格任务。
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
| description | 用于读取、生成、编辑或分析 Excel 文件,以及处理公式重算、图表、透视表等电子表格任务。 |
| lazy_load | true |
| name | excel |
| think_type | react |
🚀 完整代码示例(6 大场景 + 高级功能 + 性能优化)详见 @[skfile:references/examples.md]
Excel 处理技能,默认支持 .xlsx/.xlsm 的创建、读取、编辑、分析、公式验证和批量处理;.xls/.xlsb 需要可选依赖存在时才处理。
| 能力域 | 具体操作 | 依赖库 |
|---|---|---|
| 读取 | .xlsx/.xlsm 默认支持;.xls/.xlsb 需可选依赖 | openpyxl, pandas;可选 xlrd, pyxlsb |
| 创建/编辑 | 写入数据、公式、样式、图表、条件格式 | openpyxl |
| 公式重计算 ⭐ | ⭐首选:纯 Python 公式引擎(0.005s,支持 80+ 函数) | @[skfile:scripts/recalc_native.py] |
| 数据分析 | 清洗、透视、统计分析 | pandas, numpy |
| 高级功能 | pandas 透视汇总、数据清洗转换、保留宏文件(.xlsm)、条件格式、数据验证 | openpyxl, pandas |
| 批量处理 | 多文件并发、线程池加速 | concurrent.futures |
| 不适用场景 | 说明 |
|---|---|
| CSV/JSON/XML 等非 Excel 格式 | 不处理纯文本格式,由通用处理能力处理 |
| PDF 转 Excel | 不是本技能的直接能力 |
| Excel 文件的内容理解/问答 | 仅提取数据,不进行语义分析 |
| VBA 宏的编写/调试/执行 | 可读取/保留已有 VBA,但不编写、调试或执行宏代码 |
用户请求 → 判断是否涉及 .xlsx/.xlsm 文件,或可选依赖支持的 .xls/.xlsb 文件
├─ 是 → 激活本技能
│ ├─ 读取/分析 → 生成 Python 脚本 → Lint 检查 → 运行 → 返回数据
│ ├─ 创建/编辑 → 生成 Python 脚本 → Lint 检查 → 运行
│ │ └─ 是否含公式?
│ │ ├─ 是 → 公式强制 recalc ⭐
│ │ │ └─ recalc_native.recalc_detail() (模块导入)
│ │ └─ 否 → 直接交付
│ └─ 公式重算 → recalc_native.py ⭐ → 验证 → 返回报告
└─ 否 → 不激活
@[param:thread_dir]/tmps/ 与 @[param:user_work_dir] 存在
@[param:thread_dir]/tmps/.xlsx/.xlsm/.csv/.json/.txt 等交付物写入 @[param:user_work_dir]@[param:thread_dir]/tmps/error.logopenpyxl、pandas、numpy.xls 读取:需要 xlrd.xlsb 读取:需要 pyxlsbxlsxwriter@[param:thread_dir]/tmps/@[tool:py_exec] 运行 py_compile 语法检查,确保代码无语法错误(详见下方 Lint 检查流程)@[tool:py_exec] 的 file 参数执行脚本;不要用 shell 执行 python / python3 / pip@[param:user_work_dir] 下的处理后文件 + 验证报告公式重计算入口:只使用 recalc_native.py(纯 Python),不依赖外部办公套件。
当 AI 生成的 Python 脚本包含公式写入(单元格值以 = 开头,或使用 openpyxl 的公式赋值如 ws['A1'].value = '=SUM(B1:B5)')时,必须在脚本执行后追加 recalc 调用,以验证公式计算正确性并输出计算结果详情。
| 优先级 | 方式 | 示例 | 适用场景 |
|---|---|---|---|
| ⭐ | 模块导入(推荐) | 用 importlib.util.spec_from_file_location 从 @[skfile:scripts/recalc_native.py] 加载后调用 recalc_detail(output_path) | 脚本与 recalc 在同一 Python 进程,无 I/O 开销 |
| py_exec 文件执行 | 使用 @[tool:py_exec] 执行 @[skfile:scripts/recalc_native.py] 并传入参数(如果工具支持) | 脚本已执行完,单独验证 |
# ... 前面的创建/编辑逻辑 ...
wb.save(output_path)
# ⭐ 公式强制 recalc — 验证计算结果并输出详情
import importlib.util
from pathlib import Path
RECALC_NATIVE_PATH = Path(r"@[skfile:scripts/recalc_native.py]")
spec = importlib.util.spec_from_file_location("excel_recalc_native", RECALC_NATIVE_PATH)
recalc_native = importlib.util.module_from_spec(spec)
spec.loader.exec_module(recalc_native)
recalc_result = recalc_native.recalc_detail(output_path)
if recalc_result.get("total_errors", 0) > 0:
print(f"⚠️ 公式计算发现 {recalc_result['total_errors']} 个错误:")
for err_type, info in recalc_result.get("error_summary", {}).items():
print(f" {err_type}: {info['count']} 处 — {', '.join(info['locations'][:5])}")
else:
print(f"✅ 所有 {recalc_result['total_formulas']} 个公式计算无误")
# 输出部分公式结果供用户确认
for detail in recalc_result.get("formula_details", [])[:5]:
print(f" {detail['sheet']}!{detail['cell']}: {detail['formula']} = {detail['result']}")
| 场景 | 处理 |
|---|---|
recalc_native.recalc_detail() 不可用或报错 | 报告错误详情;如需单独验证,使用 @[tool:py_exec] 执行 recalc 脚本,不要用 shell 调 Python |
| recalc_native 完全不可用 | 报告不支持的公式/错误详情,提示用户在 Excel 中手动打开重算 |
生成的 Python 脚本在运行前必须通过语法检查,杜绝"边运行边报错边修改"的情况。流程如下:
生成代码 → 写入 .py 文件 → py_compile 编译检查
↓
✅ 通过 → 继续执行脚本
↓
❌ 失败 → 分析错误 → 重写修正 → 重新编译
↓
(最多重试 3 次)
↓
3 次均失败 → 报告错误信息给用户
@[tool:py_exec] 执行短代码完成编译检查:
import py_compile
py_compile.compile(r"<file_path>", doraise=True)
@[tool:py_exec] 的 file="<file_path>" 执行脚本。# -*- coding: utf-8 -*-| 失败场景 | 回退策略 |
|---|---|
| 文件格式不支持 | 检测扩展名;.xlsx/.xlsm 用 openpyxl,.xls 需 xlrd,.xlsb 需 pyxlsb;缺失依赖时明确报告 |
| 公式错误(#REF! / #DIV/0! / #NAME?) | #REF! 修复引用 · #DIV/0! 加 IFERROR · #NAME? 检查拼写 |
| recalc_native.py 无法处理公式 | 报告不支持的公式/错误详情,提示用户在 Excel 中手动打开重算 |
| 内存不足(大文件) | 使用 read_only 模式 / pandas 分块读取(chunksize) |
| 文件被占用 | 提示关闭文件,重试 |
| 批量处理部分失败 | 记录失败文件和错误信息,继续处理其余文件 |
| Lint 检查 3 次均失败 | 报告编译错误详情给用户,建议手动检查代码 |
| ⭐ | 脚本 | 用途 | 用法 |
|---|---|---|---|
| ⭐ | @[skfile:scripts/recalc_native.py] | 纯 Python 公式引擎(0.005-0.1s,80+ 函数,跨 sheet 引用) | 推荐通过 importlib.util.spec_from_file_location 模块导入 |
支持 --detail 输出每个公式的详细结果 | 如需单独运行,使用 @[tool:py_exec] 执行脚本文件,不要用 shell 调 Python | ||
| 支持模块导入(推荐方式) | recalc_native.recalc_detail(file) | ||
| @[skfile:scripts/test_recalc_native.py] | recalc_native 开发验证脚本 | 仅维护/回归测试时使用 |
数学:SUM, AVERAGE, MIN, MAX, COUNT, COUNTA, ABS, SQRT, ROUND, ROUNDUP, ROUNDDOWN,
INT, MOD, POWER, SUMIF, COUNTIF,
SUMIFS, COUNTIFS, AVERAGEIF, SUMPRODUCT, PRODUCT, MEDIAN,
RANK, CEILING, FLOOR, MROUND
逻辑:IF, AND, OR, NOT, IFERROR, IFNA, SWITCH, IFS, XOR
查找:VLOOKUP, HLOOKUP, INDEX, MATCH, XLOOKUP, UNIQUE, SORT,
INDIRECT, OFFSET, CHOOSE, TRANSPOSE, LOOKUP, FILTER
文本:CONCATENATE, LEFT, RIGHT, MID, LEN, FIND, SEARCH, REPLACE, SUBSTITUTE,
UPPER, LOWER, PROPER, TRIM, TEXT, TEXTJOIN, EXACT, VALUE, REPT
日期:TODAY, NOW, YEAR, MONTH, DAY, DATE, DATEDIF,
EOMONTH, EDATE, WEEKDAY, NETWORKDAYS, HOUR, MINUTE, SECOND
信息:ISBLANK, ISNUMBER, ISTEXT, ISERROR, N
统计:STDEV, VAR, LARGE, SMALL, PERCENTILE, QUARTILE
财务:PMT, FV, PV, NPV
| 内容 | 文件 | 章节 |
|---|---|---|
| 场景 1-6 完整代码示例 | @[skfile:references/examples.md] | 场景操作代码示例 |
| 高级功能(pandas 透视汇总/数据清洗转换/保留宏/条件格式/数据验证) | @[skfile:references/examples.md] | 高级功能 |
| 性能优化(大文件/批量写入/并发) | @[skfile:references/examples.md] | 性能优化 |
| 最佳实践(文件组织/错误处理/日志) | @[skfile:references/examples.md] | 最佳实践 |
用于生成测试集、执行智能体评测、批改答案并输出评分报告的 benchmark/evaluation 请求。
用于创建、升级、审查或优化 MetisAI Skill,包括技能结构设计、资源组织、脚本索引和质量检查。
全球投资分析专家。通过 Tushare MCP 获取 A股/港股/美股/期货/基金/债券/宏观等全品类金融数据,支持行情查询、财务分析、多条件选股、技术分析、策略回测和 Python 代码生成与执行。
用于读取、生成、拆分、合并、加密、提取文本/表格/图片或 OCR 处理 PDF 文件的请求。
用于从 Markdown、PDF、DOCX、URL 或主题内容生成、设计、后处理并导出 PPTX 演示文稿。
用于用户要求编写、运行、调试 Python 脚本,或进行 Python 数据处理、文件处理、绘图任务。