huashu-excel:让AI算出的每个数字都经得起追问的Excel全流程技能
> huashu-excel 是一个让 AI 代理(Agent)具备专业数据分析与 Excel 全流程处理能力的通用技能包,覆盖脏表体检、数据清洗、需求对齐、深度分析、对账核验与交付报告六大环节,依赖仅 openpyxl,跨 Agent 即插即用。
## 一、痛点:AI 算数快,但算得“不靠谱”
在过去两年里,AI 辅助数据分析已经不是什么新鲜事。你可以在 ChatGPT、Claude 或各类国产大模型里直接丢一个 CSV 文件,让它“帮我分析一下销售趋势”,几秒钟后就能得到一段漂亮的文字总结。
但问题来了:**你敢把这份总结直接发给老板吗?**
大多数情况下不敢。因为 AI 的分析结果往往存在以下致命伤:
1. **脏数据识别缺失**:Excel 里常见的合并单元格、空行、重复表头、文本型数字、日期格式错乱、公式残留,AI 往往视而不见,直接拿脏数据算平均数,结果自然离谱。
2. **需求理解表面化**:你说“分析一下业绩”,AI 就给你算个总和和平均值,但你要的可能是同比、环比、贡献度、异常值检测、Top/Bottom 排名、结构占比。
3. **结果不可追溯**:AI 给出的数字,你无法快速验证它到底怎么算出来的。如果老板追问“这个 3.2% 是怎么来的?”,你只能一脸茫然。
4. **对账环节缺失**:财务场景下,数据必须两边对得上。AI 不会主动帮你做差异核对,更不会告诉你哪些行对不上、差在哪。
5. **交付格式不规范**:AI 生成的 Excel 往往格式混乱,没有标题样式、没有颜色标注、没有数据透视表,甚至打开就报错。
**huashu-excel 正是为了解决这些问题而生。** 它不是一个简单的“Excel 操作库”,而是一套完整的、可嵌入任何 AI Agent 的 **数据分析工作流技能包**。
## 二、项目概览:一个 skill,六大环节
项目地址:https://github.com/alchaincyf/huashu-excel
作者将整个数据分析流程拆解为六个标准步骤,每个步骤对应一个独立的 skill 文件(即 Python 模块),Agent 可以按需调用:
| 阶段 | 功能 | 对应文件 |
|------|------|----------|
| 体检 | 检查表格结构、脏数据、异常值 | `1_examine.py` |
| 清洗 | 标准化数据、去重、补全 | `2_clean.py` |
| 对齐 | 明确分析目标、确认口径 | `3_align.py` |
| 分析 | 执行统计、透视、趋势分析 | `4_analyze.py` |
| 对账 | 双重校验、差异定位 | `5_reconcile.py` |
| 交付 | 生成规范 Excel 报告 | `6_deliver.py` |
整个项目仅依赖 `openpyxl` 一个第三方库,Python 标准库即可完成其余工作。这意味着它可以在任何 Python 环境中运行,无论是本地脚本、FastAPI 服务、还是 LangChain / AutoGen / CrewAI 等 Agent 框架。
## 三、安装与快速上手
### 3.1 安装
bash
pip install openpyxl
# 或使用 uv(推荐)
uv add openpyxl
然后将项目克隆或下载到本地,导入对应的 skill 模块即可:
python
import sys
sys.path.append('/path/to/huashu-excel')
from huashu_excel.examine import examine_excel
from huashu_excel.clean import clean_excel
from huashu_excel.analyze import analyze_excel
### 3.2 最小示例:体检一张脏表
假设你有一张名为 `sales.xlsx` 的销售表,里面包含合并单元格、空行、文本数字等问题:
python
from huashu_excel.examine import examine_excel
# 第一步:体检
report = examine_excel('sales.xlsx')
print(report)
# 输出示例:
# {
# 'sheet_name': 'Sheet1',
# 'rows': 105, 'cols': 8,
# 'merged_cells': 3, 'empty_cells': 12,
# 'text_numbers': 5, 'duplicate_rows': 2,
# 'date_format_issues': 1,
# 'suggestions': ['合并单元格需取消', '文本数字需转数值', ...]
# }
### 3.3 完整流程:从脏表到交付报告
python
from huashu_excel.examine import examine_excel
from huashu_excel.clean import clean_excel
from huashu_excel.align import align_requirements
from huashu_excel.analyze import analyze_excel
from huashu_excel.reconcile import reconcile_data
from huashu_excel.deliver import deliver_report
# 1. 体检
exam = examine_excel('raw_sales.xlsx')
# 2. 清洗(自动处理体检发现的问题)
clean_path = clean_excel('raw_sales.xlsx', exam)
# 3. 对齐需求(传入用户的问题描述)
req = "按月份和产品类别统计销售额,同时计算环比增长率"
aligned = align_requirements(clean_path, req)
# 4. 分析
table = analyze_excel(clean_path, aligned)
# 5. 对账(用原始数据交叉验证)
recon = reconcile_data(clean_path, table)
# 6. 交付
deliver_report(table, 'final_report.xlsx')
整个流程跑完后,`final_report.xlsx` 是一份格式规范、带有数据透视表、颜色标注和结论摘要的专业报告。
## 四、核心亮点深度拆解
### 4.1 体检:像老会计一样“扫一眼”就知道哪里脏
`examine_excel` 函数做得非常细致,它会检查:
- **合并单元格**:合并单元格会导致数据读取错位,必须检测并给出处理建议
- **空行/空列**:影响 pandas 或 openpyxl 的读取范围
- **重复表头**:两行表头是 Excel 里的常见坑
- **文本型数字**:比如 `'123'` 存成字符串,求和时会被忽略
- **日期格式混乱**:`2024/1/1`、`2024-01-01`、`20240101` 混在一列
- **异常值**:比如销售额出现负数、单价为 0、超过 3σ 的离群点
- **重复行**:完全相同的记录可能是重复导入
体检结果以 JSON 形式返回,同时附上每条问题的**修复建议**,Agent 可以直接调用 `clean_excel` 自动修复,或者向用户确认后再处理。
### 4.2 清洗:不改变原始数据,生成清洗后的副本
`clean_excel` 会读取原始文件,生成一个 `_cleaned.xlsx` 副本,所有操作都在副本上进行,**原始数据永远安全**。清洗操作包括:
- 取消合并单元格(填充或留空,可配置)
- 删除完全重复的行
- 将文本型数字转为数值类型
- 统一日期格式为 `YYYY-MM-DD`
- 填充缺失值(均值/中位数/前向填充/后向填充,可配置)
- 去除首尾空格、统一列名大小写
### 4.3 对齐:让 AI 少“猜”你的意思
这是 huashu-excel 最有特色的环节。`align_requirements` 接收用户的自然语言描述,将其解析为结构化的分析意图,包括:
- **指标**:销售额、利润、数量、单价等
- **维度**:时间(年/月/日)、产品、地区、渠道、客户等
- **统计方法**:求和、平均、中位数、标准差、最大最小、TopN、占比、同比、环比
- **筛选条件**:时间范围、特定产品/地区
对齐结果会返回给 Agent,Agent 可以再次向用户确认:“您要的环比是按月环比还是按季度环比?” 这一步极大减少了 AI 自作主张导致的错误。
### 4.4 分析:不止是算数,还有业务洞察
`analyze_excel` 内置了常用的分析模式:
- **描述性统计**:均值、中位数、标准差、四分位数
- **趋势分析**:时间序列的移动平均、增长率、季节性指数
- **结构分析**:帕累托分析(80/20 法则)、占比、贡献度
- **对比分析**:同比、环比、分组对比
- **异常检测**:基于 Z-score 或 IQR 的离群点标记
分析结果会以结构化表格返回,每一行都有对应的计算逻辑注释,方便 Agent 生成解释文本。
### 4.5 对账:这是其他工具几乎不做的事
`reconcile_data` 是 huashu-excel 的杀手锏。它会:
1. 用**原始清洗后的数据**重新计算一遍核心指标
2. 与 `analyze_excel` 的结果做逐项对比
3. 如果差异超过阈值(默认 0.01%),则定位到具体行和列
4. 生成差异报告,说明差异原因(如:清洗时删除了 2 行导致合计不同)
这对于财务、审计场景至关重要。**AI 算错不可怕,可怕的是算错了还发现不了。** 对账环节让 AI 的结果具备可验证性。
### 4.6 交付:专业级 Excel 报告
`deliver_report` 生成的 Excel 文件包含:
- 标题行(带加粗和背景色)
- 自动列宽调整
- 数据透视表(自动创建)
- 关键指标用条件格式标红/标绿
- 结论摘要放在第一个 sheet 顶部
- 所有 sheet 命名规范(如“数据”“透视”“结论”)
打开就能直接用,不需要二次美化。
## 五、适用场景
huashu-excel 适用于以下典型场景:
1. **财务对账**:月度账单核对、银行流水对账、发票核验。对账功能直接命中刚需。
2. **运营报表**:每周/每月的销售、用户、流量数据整理与趋势分析。
3. **数据清洗外包**:把脏乱差的 Excel 交给 AI Agent,让它先清洗再分析,减少人工劳动。
4. **自动化报告生成**:接入定时任务,每天自动拉取数据、分析、生成报告邮件。
5. **企业内部 AI 助手**:部署在公司私有化环境中,员工通过聊天机器人上传 Excel,获得专业分析结果。
6. **教学与审计**:帮助学生或审计人员快速验证 AI 计算结果的正确性。
## 六、同类项目对比
| 特性 | huashu-excel | pandas + 手动代码 | Microsoft Copilot in Excel | 其他 Excel Agent 库(如 excel-agent) |
|------|--------------|------------------|---------------------------|--------------------------------------|
| 工作流完整性 | ✅ 六大环节闭环 | ❌ 需要自己写 | ✅ 但仅限微软生态 | ⚠️ 部分覆盖 |
| 脏数据检测 | ✅ 内置 10+ 规则 | ❌ 需自行实现 | ⚠️ 有限 | ⚠️ 有限 |
| 对账核验 | ✅ 独有功能 | ❌ 无 | ❌ 无 | ❌ 无 |
| 跨 Agent 通用 | ✅ 纯 Python 模块 | ✅ 任何环境 | ❌ 仅 Copilot | ⚠️ 依赖特定框架 |
| 依赖轻量 | ✅ 仅 openpyxl | ❌ pandas 重依赖 | ❌ 闭源 | ⚠️ 可能依赖 pandas |
| 可定制性 | ✅ 源码可改 | ✅ 完全可控 | ❌ 黑盒 | ⚠️ 部分可改 |
| 学习成本 | 低(有文档和示例) | 高(需熟悉 pandas) | 低(但能力受限) | 中 |
**对比结论**:
- 如果你只想在本地用 pandas 处理数据,不需要 AI 介入,那 huashu-excel 不是你的菜。
- 如果你在用 AI Agent(如 LangChain、Dify、Coze)开发数据分析功能,huashu-excel 是目前最轻量、最完整的“插件式”技能包。
- 相比微软 Copilot,它不依赖云端闭源服务,数据完全本地化,适合金融、政务等敏感场景。
## 七、技术细节与扩展性
### 7.1 为什么只用 openpyxl?
作者刻意避免 pandas,原因有三:
1. **轻量**:pandas 依赖 numpy,安装包体积大,在 Serverless 或边缘环境部署困难。
2. **可控性**:openpyxl 直接操作单元格,每一步逻辑都透明,方便对账和调试。
3. **兼容性**:openpyxl 对 Excel 的格式保留更好,不会像 pandas 那样丢失样式、公式或图表。
### 7.2 如何接入自己的 Agent?
以 LangChain 为例,只需将每个 skill 包装成 Tool:
python
from langchain.tools import Tool
from huashu_excel.examine import examine_excel
from huashu_excel.clean import clean_excel
tools = [
Tool(name="examine_excel", func=examine_excel, description="检查Excel文件脏数据"),
Tool(name="clean_excel", func=clean_excel, description="清洗Excel文件"),
# ... 其他工具
]
# 然后交给 Agent 使用
任何支持工具调用的 Agent 框架(OpenAI Function Calling、Claude Tool Use、Coze Plugin)都可以同理接入。
### 7.3 扩展方向
- **支持更多文件格式**:目前仅支持 .xlsx,未来可加入 .xls、.csv
- **可视化图表**:可以基于 openpyxl 的 chart 模块生成柱状图、折线图
- **规则自定义**:脏数据检测规则可配置(如自定义异常值阈值)
- **多语言支持**:分析结论可输出中英文
## 八、总结评价
**优点**:
- 设计思路清晰,六大环节覆盖了数据分析的全生命周期,尤其是“对账”和“对齐”两个环节,直击 AI 数据分析的信任痛点。
- 代码简洁、无重型依赖,阅读和二次开发成本低。
- 输出结构化,方便 Agent 理解和继续处理。
**不足**:
- 目前不支持 .csv 和 .xls 格式,限制了部分场景。
- 清洗规则虽然覆盖了常见问题,但面对极端复杂的嵌套表头、多 sheet 关联,仍需手动扩展。
- 项目尚在早期阶段(Stars 335),社区和文档还有提升空间。
**适合人群**:
- 正在用 AI Agent 做数据分析的开发者
- 企业内部工具开发人员,需要快速实现“上传 Excel → AI 分析 → 输出报告”的流程
- 对数据可信度有高要求的财务、审计场景从业者
如果你厌倦了 AI 给你一张“看似完美但经不起追问”的分析表,不妨试试 huashu-excel 这套流程——它让每一个数字都有来源,每一步计算都有记录,每一份报告都经得起老板的盘问。
项目地址:[alchaincyf/huashu-excel](https://github.com/alchaincyf/huashu-excel)