office-file-processing

August 18, 2026 · View on GitHub

DSH(DeepSeek Harness)Skill:Office 文件处理与省 Token 工作流 DSH (DeepSeek Harness) Skill — Office file processing with a token-saving workflow

本 README 为中英双语(中文在前,English follows)。This README is bilingual (Chinese first, English follows).


📖 简介 / Introduction

中文:一个面向 DSH 的 Office 文件处理 skill,基于 Python 生态(openpyxl / python-docx / python-pptx / pandas / sqlite3)统一处理 Excel、Word、PowerPoint、CSV 文件与 SQLite 数据库。它内置三大独特工作流与一套严格的省 Token 规则,并以「交互式分组提问」为默认工作方式——让 AI 先按阶段问清需求、出确认清单、再动手执行,交付时只回摘要、不把数据灌进对话。

English: A DSH skill that processes Excel, Word, PowerPoint, CSV files and SQLite databases through the Python ecosystem (openpyxl / python-docx / python-pptx / pandas / sqlite3). It ships three distinctive workflows and a strict token-saving discipline, and defaults to an interactive grouped-Q&A mode — the agent collects requirements stage by stage, prints a confirmation checklist, then executes, returning only summaries instead of dumping data into the conversation.


🏆 核心优势 / Why This Skill

#优势 / Advantage说明 / Description
1三大独特工作流 / Three distinctive workflowsExcel 全量 SQLite 中转、Word Markdown 初稿中转、PPT 场景化版式 + 强制公文审查
2交互式分组提问(默认) / Interactive grouped Q&A (default)按阶段一次问 2-3 个问题、每题带选项与默认值,集齐后出确认清单再执行;信息给全可跳过,也可喊停
3省 Token 设计 / Token-saving design文件留磁盘、对话只过摘要、脚本复用、大任务交子代理、长耗时放后台
4SQLite 零安装零服务 / Zero-install SQLitePython 内置 sqlite3,一个 .db 文件即整个库,无需装数据库服务
5开箱即用 / Ready to use内置 Excel/Word/PPT 探查脚本,先看结构再取数,绝不盲目全量读入

🔄 详细工作流程 / Detailed Workflow

0. 总流程 / Overview

① 交互式分组提问  ② 探查  ③ 执行(按文件类型走对应工作流)  ④ 汇报

1. 交互式分组提问 / Interactive Grouped Q&A(默认工作方式 / default mode)

按 3 个阶段收集需求,每阶段一次问 2-3 个相关问题,用户一条回复作答:

阶段 / Stage中文English
阶段 1 · 识别任务① 处理哪个文件?② 想达到什么效果?(A 汇总统计 / B 清洗去重 / C 匹配合并 / D 格式排版 / E 入库查询)① Which file? ② What outcome? (A aggregate / B dedupe / C merge-match / D formatting / E import-query)
阶段 2 · 明确细节分组列 / 筛选条件 / 输出文件名等Group-by column / filters / output filename, etc.
阶段 3 · 确认单行确认清单,回复 Y 开始执行One-line confirmation; reply Y to run

纪律 / Rules

  1. 按阶段分组,只问意图、不碰数据 / Ask intent only, never data content;
  2. 已给信息不重复问,信息给全自动跳过提问 / Skip what's already given;
  3. 说「不用提问」即退回一次性问清 / Say "skip questions" to fall back;
  4. 确认清单获 Y 才动手,完成后追问是否调整 / Execute only after confirmation.

2. Excel 工作流:全量 SQLite 中转 / Excel: SQLite-First Pipeline

无论数据量大小,Excel/CSV 任务一律走统一链路,聚合、JOIN、筛选、去重全部在 SQL 层完成,只把汇总结果带回对话:

Excel/CSV ──导入──▶ SQLite(.db) ──SQL 查询/汇总──▶ pandas ──导出──▶ Excel 报表
步骤 / Step动作 / Action
1探查:excel_probe.py 看 Sheet 列表、行列数、列名、dtype、前 3 行样本
2导入:df.to_sql('表名', conn, if_exists='replace', index=False);长期数据先定主键建索引
3查询:pd.read_sql('SELECT ...', conn),聚合/JOIN/筛选在 SQL 层做
4导出:df.to_excel();需格式时用 openpyxl 加工(边框/合并/列宽/样式)

3. Word 工作流:Markdown 初稿中转 / Word: Markdown-First Draft

初稿先写 Markdown(省 Token、易审阅),再转 docx,确认后才做精细排版:

写 .md 初稿 ──▶ pandoc 转 .docx(不可用时 md2docx.py 兜底)──▶ 用户确认 ──▶ python-docx 精细排版
  • 公文类任务(通知/报告/纪要/讲话等)联动 official-document-writing skill 起草规范;
  • 修改现有文档:遍历段落与表格单元格替换文本,报告替换次数。

4. PowerPoint 工作流:场景化版式 + 强制公文审查 / PPT: Scenario Layouts + Mandatory Document Review

Markdown 内容 + 用途声明 ──▶ 公文写法审查 ──▶ 场景版式自动选 ──▶ 图片占位双保险 ──▶ 交付 .pptx + 审查回执
用途 / Scenario版式 / Layout
座谈会 / 党政汇报庄重政务风(深蓝/红金、方正字体)
路演 / 产品发布商务冲击风(深色背景、高对比大标题)
培训 / 教学清晰教学风(浅色、分区明确)
工作总结 / 述职稳重商务风(蓝白、数据化排版)
  • 图片占位双保险:页面灰色占位框 + 演讲者备注栏再写一遍插图建议;
  • 修改现有 PPT:遍历 shapes 按关键词匹配替换,报告每页改动数。

5. 省 Token 规则 / Token-Saving Rules(全程遵守 / always on)

  1. 探查先行 / Probe first —— 先看结构再取数,不全量读入;
  2. 摘要回传 / Summaries only —— head(3) + info() + 统计数字,不打印全表全文;
  3. 结果落盘 / Write to disk —— 输出写文件,对话只报关键数字与路径;
  4. 意图问清、数据留盘 / Intent in, data out —— 提问只收集意图,数据永不进对话;
  5. 脚本复用 / Reuse scripts —— 处理脚本存 .py,同类任务改参数调用;
  6. 大任务交子代理 / Delegate big jobs —— 多文件合并清洗等交给后台子代理,主会话只收摘要;
  7. 长耗时放后台 / Background long jobs —— 大文件转换后台跑,完成才汇报。

🧭 使用示例 / Usage Example

用户:帮我汇总一下 2026 年销售数据.xlsx
助手:【阶段 1/2】① 要处理哪个文件?② 目标?(回复字母):A 汇总统计 B 清洗去重 C 匹配合并 D 格式排版 E 入库查询
用户:A,按产品分组求和
助手:【阶段 2/2】① 按「产品」列分组,对吗?② 输出文件名?(默认 2026 年销售数据_汇总.xlsx)
用户:Y
助手:✅ 处理完成 → 2026 年销售数据_汇总.xlsx。共 12,340 行,按产品分组生成 5 行汇总。

📦 安装 / Installation

中文

  1. 将本目录复制到 DSH 的用户 skill 目录:
    ~/.dsh/skills/office-file-processing/
    
  2. 安装 Python 依赖:
    pip install openpyxl python-docx python-pptx pandas pypandoc pypdf pdfplumber olefile
    
  3. 重启 DSH(或等待 skill 目录热更新),在会话中直接提出 Office 处理需求即可自动调用。

English:

  1. Copy this directory into DSH's user skill directory: ~/.dsh/skills/office-file-processing/
  2. Install dependencies: pip install openpyxl python-docx python-pptx pandas pypandoc pypdf pdfplumber olefile
  3. Restart DSH (or wait for hot reload), then simply ask for Office work in a session.

依赖版本(本机实测)/ Verified versions: openpyxl 3.1.5、python-docx 1.2.0、python-pptx 1.0.2、pandas 3.0.5、pypandoc 1.17(pandoc 3.9)、pypdf、pdfplumber、olefile;sqlite3 为 Python 内置 / built-in。


📁 目录结构 / Directory Structure

office-file-processing/
├── SKILL.md              # skill 主体:工作流、省 Token 规则、环境约定 / main instructions
├── README.md             # 本文件 / this file
├── LICENSE               # Apache-2.0
└── scripts/
    ├── excel_probe.py    # Excel 紧凑探查 / compact Excel probe
    ├── word_probe.py     # Word 紧凑探查 / compact Word probe
    ├── ppt_probe.py      # PPT 紧凑探查 / compact PPT probe
    └── md2docx.py        # Markdown 转 docx 兜底 / Markdown→docx fallback

⚙️ 环境要求 / Requirements

  • DSH(DeepSeek Harness)
  • Python 3.10+(本机 3.13 实测 / tested on 3.13)
  • 依赖库见上 / dependencies listed above

中文:仓库内 SKILL.md 已做通配化处理——Python 路径、工作目录等使用 <Python安装目录><工作目录> 占位符,安装后按本机环境替换(见 SKILL.md「环境约定」节)。旧版 .xls 请先转存 .xlsx;扫描版 PDF 需先转文字版。

English: SKILL.md is generalized — Python path and workspace use placeholders (<Python安装目录>, <工作目录>); replace them for your machine (see SKILL.md "环境约定"). Convert legacy .xls to .xlsx first; scanned PDFs need a text layer.


📄 许可证 / License

Apache License 2.0 — 详见 / see LICENSE