从系统导出一份Excel,打开一看——全是合并单元格。筛选报错、排序报错、透视表报错,所有功能都用不了。
手动取消合并,发现只有左上角有值,其他全是空的。还要一个一个重新填。
我让AI写了25行代码,一键取消所有合并单元格,自动填充值,数据瞬间变规范。
效果预览
处理前: 标题跨5列合并,表头跨行合并,数据区一片混乱
处理后: 所有合并取消,每个格子都有值,筛选排序马上能用
核心代码(精简版)
from openpyxl import load_workbookwb = load_workbook("报表.xlsx")ws = wb.activefor merge_range in list(ws.merged_cells.ranges):# 获取左上角的值value = ws.cell(row=merge_range.min_row, column=merge_range.min_col).value# 取消合并ws.unmerge_cells(str(merge_range))# 填充值for row in range(merge_range.min_row, merge_range.max_row + 1):for col in range(merge_range.min_col, merge_range.max_col + 1):ws.cell(row=row, column=col, value=value)wb.save("报表_处理后.xlsx")
怎么用
pip install openpyxl pandas复制完整代码保存为
.py运行,输入文件夹路径
查看「取消合并后」文件夹
夜雨聆风