每月初,门店销售明细下来,要经过加工:清洗数据、算实际金额、加核算信息、做透视汇总。以前我得4个脚本挨个跑,改路径、等完成、再跑下一个。一个月一次,一次大半天。后来我把4段代码打包成一个桌面工具,点一下,全自动跑完。


import redef extract_month(filename):"""从文件名提取月份数字,自动补零"""nums = re.findall(r'(\d+)', filename)for n in nums:if 1 <= int(n) <= 12:return n.zfill(2)6 → "06" return None
def extract_store_code(store_name):"""从店名提取前导编码,输出文本格式"""match = re.match(r'(\d+)', str(store_name))if match:code = match.group(1)pandas写入Excel时用文本格式,保留前导零 return f'="{code}"' # 或设置单元格格式为文本 return ''
def run_all_steps():def worker():log("===== 开始全流程处理 =====")try:log("步骤1:清洗原始数据...")step1_clean_data()update_progress(25)log("步骤2:计算实际金额...")step2_calc_amount()update_progress(50)log("步骤3:添加核算信息...")step3_add_accounting()update_progress(75)log("步骤4:生成透视汇总...")step4_pivot_summary()update_progress(100)log("✅ 全流程完成!")messagebox.showinfo("完成", "门店对账单已生成")except Exception as e:log(f"❌ 出错:{str(e)}")messagebox.showerror("错误", f"处理失败:{str(e)}")threading.Thread(target=worker, daemon=True).start()
环节 | 以前(手动跑) | 现在(一键运行) |
数据清洗 | 单独运行脚本A | 点一下自动执行 |
计算金额 | 单独运行脚本B | 自动第二步 |
添加核算 | 单独运行脚本C,中途检查VLOOKUP | 自动匹配映射表 |
透视汇总 | 单独运行脚本D | 自动生成两个透视表 |
出错处理 | 从头重跑,文件要重新生成 | 单步重跑,不影响其他步骤 |
换月操作 | 改4个脚本的路径+文件名 | 改1个文件名 |
换电脑 | 复制脚本+重装依赖+调路径 | 复制文件夹→改工作目录→保存配置 |
总耗时 | 大半天(盯屏+手动切换) | 点一下,2-3分钟出结果 |
📌 关注「数智财库」,分享财务自动化的实战经验分享~