DeepTutor xlsx 技能
让智能体读写并编辑 Excel 工作簿和 CSV/TSV 表格——处理数据、公式、样式、图表与多表工作簿。
技能仅声明 sandbox: shell,依赖 openpyxl 等已声明依赖,在用户工作区相对路径内读写,无网络外呼、无凭证访问、破坏性默认值为零,且明确告诫不要使用 /tmp、不要搜索桌面安装,数据流透明。扣分点:无独立回滚机制(编辑时建议保留源文件但非强制)、用户确认环节依赖宿主而非技能自身约定、发布方未经注册表验证(本身不扣分但归因信息有限)。
指令自洽:openpyxl 公式不计算的 gotcha、data_only=True 禁止 save、插入行列需手工改公式等均准确,输出自校验(重载扫描错误字符串、zip 完整性)是加分项。扣分点:静态评审未执行任何关键路径,仓库内测试(test_api_endpoints.py 等)不覆盖该技能路径,异常输入(损坏 xlsx、加密文件)的失败反馈无证据。
场景清晰(读取/创建/编辑 xlsx、csv/tsv),description 明确排除 Google Sheets API 与 Word/PDF,触发边界与非适用范围写明,运行时环境说明具体(openpyxl 全安装声明、pandas 不可假设)。扣分点:无输入/输出示例文件级别的契约,对超大规模文件的性能边界只有一句带过。
文档分层良好(Runtime→Gotcha→读/建/编辑/图表/校验/CSV/OOXML),frontmatter 有 name/description/requires,仓库有 Apache-2.0 LICENSE、pyproject 打包声明(SKILL.md 作为包数据随 wheel 发布)、活跃发布记录。扣分点:技能本身无版本号/changelog/已知限制清单,维护责任仅能从仓库整体推断。
指导针对真实痛点(公式缓存值、保留格式的编辑、无 LibreOffice 时的降级路径),给出的替代方案(写静态数字)边际价值明确。扣分点:静态评审无法验证产出文件可直接使用,有效性仅基于代码片段的书面合理性,代表性输出未经复核。
技术论断(openpyxl 不算公式、data_only 保存丢公式标注'已验证')可由公开库行为交叉核对,代码示例可独立运行,pyproject 确认 openpyxl>=3.1.0 为声明依赖。扣分点:'verified'为作者自述,无针对该技能的测试或 CI 覆盖证据,未达第三方执行证据门槛,静态上限 5。
- 本评审为纯静态源码评审,未执行任何技能指令或代码,所有分数置信度为低。
- 该技能以 openpyxl 生成的含公式文件在 Excel 打开前缓存值为空,若下游工具依赖缓存值会读到空数据,请按技能建议优先写静态数字。
- 无 LibreOffice 环境时公式重算路径不可用,技能只能降级为提示用户在 Excel 中打开重算。
- 仓库测试未覆盖该技能路径,技能行为的正确性目前仅有文档自述支持。
- 发布方未经 FollowSkills 注册表验证,身份按未知处理;使用前请自行核对安装来源。
这个 Skill 能做什么,适合哪些场景?
这是 DeepTutor 仓库内置的 xlsx 技能(deeptutor/skills/builtin/xlsx/SKILL.md),指导模型用 Python 的 openpyxl 库读取、创建和编辑 .xlsx/.xlsm 文件,并批量处理 .csv/.tsv 表格。它覆盖单元格、公式、样式、合并单元格、多表工作簿、数字格式和图表,并特别强调 openpyxl 不计算公式的关键陷阱及应对策略。技能运行在带 shell 执行能力的沙箱中,通过 exec 运行 Python 代码,产出可直接交付的工作簿文件。它属于 DeepTutor 这个开源智能辅导平台(Apache-2.0 协议)捆绑的 6 个内置技能之一。
技能本身是一份 SKILL.md 操作手册,指示模型:用 openpyxl 的 load_workbook 流式读取大型工作簿或读取公式的缓存计算值;从零创建工作簿,写入表头、数据、样式(字体、填充、对齐、数字格式)、冻结窗格和第二个工作表,保存后立即用 load_workbook 和 zipfile 校验文件完整;编辑现有文件时保留原有格式,不经过 pandas 往返;用 write-only 模式流式导出大数据量;用 openpyxl.chart 生成柱状图/折线图/饼图/散点图;用 csv 模块转换 CSV/TSV 并清理脏数据;针对 openpyxl 写公式但不计算的问题,给出两条路径——直接在 Python 中算好写入静态数值,或写真实公式并在 soffice 可用时通过 LibreOffice 重算缓存值;最后重载输出文件扫描 #REF!、#DIV/0! 等错误字符串验证结果。
- 教学或科研场景中,需要把杂乱的 Excel 成绩表清洗、加列、加汇总公式后交付给学生或同事
- 分析型用户拿到多表 .xlsx 数据源,想提取并分析其中的数据而不破坏原有格式
- 需要从零生成带样式、冻结表头和图表的报告工作簿
- 处理大批量 CSV/TSV 导出,要求内存友好地流式写入
- 需要保留公式的动态财务或统计模型,交付后在 Excel 中继续编辑时能自动重算
这个 Skill 有哪些优点和局限?
- 明确指出并给出 openpyxl '写公式不计算' 这一常见陷阱的两种解决方案,输出默认即正确
- 覆盖读取、创建、编辑、图表、CSV 全链路,并要求保存后立即校验文件和扫描公式错误
- 强调编辑时保留原格式,避免 pandas 往返破坏样式
- openpyxl 被声明为每个受支持的 DeepTutor 安装都具备,无需额外装依赖
- 需要可执行 Python 代码的沙箱,无 shell 执行能力的环境无法使用
- openpyxl 无公式引擎:写公式的文件在 Excel 打开前缓存值为空,未装 LibreOffice 时无法预验证公式结果
- 插入/删除行列不会自动修正引用偏移单元格的公式,需手动重指
- 技能明确不覆盖 Google Sheets API,也不处理 Word/PDF 等其他输出格式
- SKILL.md 未附带自动化测试套件,兼容性验证依赖运行时校验代码
如何安装这个 Skill?
该技能是 DeepTutor 仓库的内置技能,随安装自带,无需单独安装。完整平台安装:pip install -U deeptutor 后运行 deeptutor init 和 deeptutor start(需 Python 3.11+ 和 Node.js 20+);也可从源码克隆 https://github.com/HKUDS/DeepTutor 安装。若想单独把 SKILL.md 复用到其他 Agent Skills 兼容客户端,可将 deeptutor/skills/builtin/xlsx/ 目录拷入对应技能目录;仓库未单独说明独立的安装命令。
如何使用这个 Skill?
在 DeepTutor 对话中直接提出以电子表格为输入或交付物的请求即可,例如:"读取 data.xlsx,在末尾加一列环比增长率,并生成一个柱状图"。技能要求沙箱启用 exec/code_execution 工具(README 说明默认在本地/Docker 部署中已启用,docker-compose 部署路由到 runner sidecar)。若关闭 sandbox_allow_subprocess 设置,办公类技能将无法产出文件。触发时模型会编写并执行 openpyxl Python 脚本,然后返回文件下载链接。
这个 Skill 与同类方案有什么区别?
在 DeepTutor 生态内,它与同仓库捆绑的 docx/pdf/pptx 内置技能形成互补(分别对应 Word、PDF、PowerPoint 交付物);技能自身明确把 Google Sheets API 和 Office 文档类输出排除在范围之外,用户应按交付物类型选用对应技能。