小店、连锁门店和个体经营者每个月都会拿到一堆来源不同的销售表格:有的导出成 CSV,有的是 Excel 多工作表,编码和列名各不相同,日期写法也五花八门。人工合并这些表格既费时又容易算错,尤其是一笔记录在两个文件里重复出现时,金额会被重复统计,直接影响老板判断哪家店赚钱。本工具针对「多家门店、多个渠道导出的销售明细需要合并成一张规范报表」这个场景,把清洗、去重、汇总、出图一次做完。
点击空白处退出提示
小店、连锁门店和个体经营者每个月都会拿到一堆来源不同的销售表格:有的导出成 CSV,有的是 Excel 多工作表,编码和列名各不相同,日期写法也五花八门。人工合并这些表格既费时又容易算错,尤其是一笔记录在两个文件里重复出现时,金额会被重复统计,直接影响老板判断哪家店赚钱。本工具针对「多家门店、多个渠道导出的销售明细需要合并成一张规范报表」这个场景,把清洗、去重、汇总、出图一次做完。
工具包含四个功能模块。
一、自动扫描:递归读取输入文件夹里所有 .csv / .xlsx / .xlsm 文件,自动识别 CSV 编码(UTF-8、GBK 等),自动忽略 Excel 生成的 ~$ 临时文件。
二、自动识别表头:无论金额那一列叫「金额」「销售额」还是「成交额」,无论列顺序怎么变、表头在第几行,都能准确定位到日期、金额、门店三列。
三、清洗与去重:金额自动去掉 ¥、元、千分位逗号和空格并转成数字;日期统一成 YYYY-MM-DD;按「日期 + 门店 + 金额」三列去重,避免同一笔记录被重复计算;解析失败的行单独记下原因,不静默丢弃。
四、输出报表:生成一张明细表、一张按门店汇总并自动附带柱状图的汇总表,以及一张记录每个文件读了多少行、丢了多少行、为什么丢的说明表,方便核对。
这个项目由我在 AI 编程助手的协助下完成,我负责需求定义、功能设计、清洗规则制定和全部验收测试。
我具体做了这些事:
1. 明确要解决的问题:客户手里有多个来源、编码和列名都不统一的销售表格,需要合并成一张规范报表。
2. 定下清洗规则:金额里的符号怎么去、日期格式怎么统一、重复行按什么键去重、解析失败的行怎么处理。
3. 设计输出结构:明细表、汇总表 + 柱状图、说明表,三张表各放什么内容。
4. 逐条验收:用示例数据核对行数、金额合计和去重数量,确认报表里的数字和我手工重算的结果完全一致。
技术栈:Python 3.12 + pandas + openpyxl + XlsxWriter,入口是一个 PowerShell 脚本,并打包成双击即可运行的「一键运行.bat」,零基础用户不需要配置任何环境。
实现亮点:
1. 编码自动探测,按 utf-8-sig → utf-8 → gbk → gb18030 的顺序依次尝试,第一个能解开的就用它,解决了客户表格编码不统一的问题。
2. 采用「先找表头行、再按列名归一化」的两步解析,能兼容表头不在第一行、列名写法不一致、列顺序不同等各种情况;认不出日期和金额列的表会整体跳过并说明原因,不会把无关的表当成销售数据算进去。
3. 全流程在本机运行,不上传任何数据,客户不必担心自己的经营数据外泄。
难点在于去重键的选择:一开始只按「日期 + 门店」去重,会误删同一天同一家店的正常多笔交易;最终定为「日期 + 门店 + 金额」三列,既能挡掉同一个文件被导出两次造成的重复计算,又能保留同一天的真实多笔订单。





评论