Python 多 Excel 工作簿批量合并与汇总
问题 分公司各自报一个 xlsx,科目编码相同,要把它们按“科目”纵向合并成一张全量底稿,或跨表按科目汇总金额。手工复制粘贴易错。用 pandas 批量读合并。 示例代码 plaintext ```javascript import pandas as pd import glob import os def merge_workbooks(folder, sheet_name=0): files = glob.glob(os.path.join(folder, "*.xlsx")) frames = [] for f in files: df = pd.read_excel(f, sheet_name=sheet_name) df["source"] = os.path.basename(f) frames.append(df) return pd.concat(frames, ignore_index=True) def summarize_by_account(merged, code_col, amount_col): return merged.groupby(code_col, as_index=False)[amount_col].sum() merged = merge_workbooks("./branches") summary = summarize_by_account(merged, "科目编码", "本期发生额") summary.to_excel("consolidated.xlsx", index=False) ``` 关键点 - glob 取目录下全部 xlsx;pd.concat 纵向拼;加 source 列溯源,哪行来自哪家公司一目了然。 - 汇总用 groupby 按科目编码求和;若各公司编码口径不一,先统一映射再汇总。 - 大批量读用 openpyxl 引擎只读模式更快:pd.read_excel(f, engine="openpyxl")。 小结 分公司数据合并 = 读全部 + 拼 + 分组汇总。pandas 三行核心代码替代一上午复制粘贴。 --- 你合并分公司数据最常卡在“编码口径不一致”还是“表头不同”?评论区说。 如果有用,点赞收藏关注,留下审计难题。下期预告:财务异常检测——统计离群点自动筛查。 会计师事务所的一名注册会计师