立项背景和目标:财务对账、数据汇总、报表整理等日常办公场景经常需要合并多份 Excel、按列去重、条件筛选、统计数值,手工操作繁琐且极易出错,大文件处理耗时数小时。本项目目标是开发 Excel 批处理命令行工具箱,将高频操作封装为一条命令,大幅提升办公数据处理效率。
核心功能模块:① 多文件合并 merge——自动识别表头并按并集对齐,跨文件列不一致时自动补空,保留表头底色、数字格式、列宽;② 按列去重 dedupe——指定关键列去重,保留首次出现记录;③ 条件筛选 filter——支持精确匹配、范围、包含等多条件组合筛选导出;④ 数值统计 stats——均值、合计、计数一键输出汇总表;⑤ 中文兼容——全面支持中文列名与中文数据,无乱码。
业务流程:选择子命令 → 传入 Excel 文件与参数 → 程序自动处理 → 输出结果文件 → 保留原文件不破坏。
整体架构:单文件模块化设计,excel_tool.py 内按子命令分函数实现:merge 用 openpyxl 读取多工作簿后按列名并集对齐写入新工作簿;dedupe 基于指定列哈希去重;filter 用表达式解析条件组合;stats 遍历数值列聚合统计。CLI 用 argparse 实现统一参数解析,所有子命令共享一致的错误处理与日志输出。
我的负责模块与结果:独立完成全部设计与实现,交付 17 项自动化测试全部通过(覆盖并集表头顺序、跨文件对齐、格式保留、去重计数、三种筛选、统计值正确性),并用真实子进程双重验证 CLI 命令可用。代码约 640 行,UTF-8 编码。
难点与解决:① openpyxl 读取不存在的列宽会创建默认值导致格式复制失效——改为仅在源列确有宽度时写入输出;② 跨文件列名不一致合并错位——先构建全量列名并集再逐文件映射填充;③ 中文文件名与内容乱码——全程 UTF-8 读写并兼容 Excel 的 BOM 处理。