[特殊字符] Excel 按月筛选 + 工作表复制 + 样式批量处理 —— Python 自动化大汇总

发布于:2025-07-05 ⋅ 阅读:(17) ⋅ 点赞:(0)

本教程展示如何使用 Python 的 openpyxl 实现:

  • 多工作表遍历:自动查找每月物料表;

  • 条件筛选:获取 G 列数量大于 1000 的记录;

  • 生成汇总表:从模板复制页面并写入筛选结果;

  • 统一样式:批量设定字体、边框、对齐等。

这是一套典型的“Excel 报表自动生成+美化”流程,适合供应链、月度报表、库存分析等场景。

目录

🔍 第一步:遍历每个工作表并获取符合条件的数据

🔁 第二步:根据模板复制工作表并写入数据

💾 第三步:保存最终报表

🖼️ 结果展示区

✅ 项目亮点与优化建议



🔍 第一步:遍历每个工作表并获取符合条件的数据

from openpyxl import load_workbook

wb = load_workbook("每月物料表.xlsx")
data = {}
for sheet_name in wb.sheetnames:
    ws = wb[sheet_name]
    qty_list = [ws[f"G{r}"].value for r in range(2, ws.max_row + 1)]
    qty_idx = list(enumerate(qty_list))
    row_idx = [i+2 for i, v in qty_idx if v and v > 1000]

    filtered = [ws[f"A{i}:I{i}"] for i in row_idx]
    data[sheet_name] = filtered

🔁 第二步:根据模板复制工作表并写入数据

from openpyxl.styles import Border, Side, Font, Alignment

wb = load_workbook("模板.xlsx")
ws_template = wb.active
thin = Side(border_style="thin", color="000000")

for month, rows in data.items():
    ws_new = wb.copy_worksheet(ws_template)
    ws_new.title = month

    for i, cell_range in enumerate(rows, start=2):
        for j, cell in enumerate(cell_range[0], start=1):
            val = cell.value
            # 日期类型特殊处理
            if hasattr(val, 'date'):
                val = val.date()
            ws_new.cell(row=i, column=j).value = val

        for col in range(1, 10):
            c = ws_new.cell(row=i, column=col)
            c.font = Font(size=10)
            c.border = Border(top=thin, left=thin, right=thin, bottom=thin)
            c.alignment = Alignment(horizontal="left", vertical="center", shrink_to_fit=True)
  • 使用 wb.copy_worksheet() 复制模板 medium.com+5openpyxl.readthedocs.io+5reddit.com+5

  • 通过双重循环写入每行 9 列数据;

  • 统一设置 字体10号、细边框、左对齐+垂直居中、自适应收缩,提高表格整体美观度。

'shrink_to_fit=True' 参数为自适应收缩功能,符合 openpyxl 文档描述 openpyxl.readthedocs.io+4pythonpapers.com+4blog.pythonlibrary.org+4


💾 第三步:保存最终报表

wb.save("每月(大于1K).xlsx")

生成包含各月工作表的 Excel 文件,每页均为筛选后的数据,并统一样式。


🖼️ 结果展示区


✅ 项目亮点与优化建议

功能 说明
条件筛选 自动提取 G 列 >1000 的行数据
模板复制 用模板样式构建新工作表
样式统一 字体、边框、对齐、收缩全面设置
文件结构 多月报表合并于一个文件,便于管理

🔧 可扩展功能建议

  • 增加 筛选条件参数(如日期范围、字段阈值自定义);

  • 自动生成目录页,汇总每月数据;

  • 条件格式高亮(如红色标注高于某阈值行);

  • 支持 按列自动计算合计(如每页新增总计行)。

 更多实用案例,代码,素材如下:

自取链接:https://pan.quark.cn/s/a46f30accea2


如果你觉得这个案例有帮助,欢迎点赞 ⭐、收藏 ❤️、评论 📣!如需其他类型自动化案例(如 PDF 批量处理、网络爬虫 + 报表生成、邮件群发等),欢迎随时告诉我,我可以继续为你深度定制高实用性内容。


网站公告

今日签到

点亮在社区的每一天
去签到