乐于分享
好东西不私藏

100张Excel图表,以前做4小时,现在2分钟(附代码)

100张Excel图表,以前做4小时,现在2分钟(附代码)

还在手动一张张做图表?复制粘贴到手软?今天教你用Python一键生成100张图表,喝杯咖啡的时间就搞定

📌 上篇AI概念的文章很受大家欢迎,感谢大家的支持。今天回归Python办公自动化,来点实打实的干货。 一个真实崩溃的瞬间—— 上周一个做财务的朋友找我哭诉:

“每个月要出50家门店的销售图表,打开Excel → 选数据 → 插图表 → 调颜色 → 改标题 → 保存…一张图5分钟,光做图就要4个多小时,每个月都来一遍,我要疯了。”

我给了她一段代码。50张图表,2分钟跑完。

今天就把这段代码分享给你。

步骤1:环境准备

1.安装好python3.*

2.安装库(在cmd命令行窗口输入如下命令按回车键): pip install pandas matplotlib openpyxl

数据:下面是我的业务数据(有100个门店的销售数据):

每个Excel长这个样子(结构完全相同):

目标:一键生成所有门店的图表。

步骤2:新建batch_charts.py文件,编写python脚本

下面是完整代码(复制就能用

import pandas as pd

import matplotlib.pyplot as plt

import os

设置中文显示

plt.rcParams[‘font.sans-serif’] = [‘SimHei’] plt.rcParams[‘axes.unicode_minus’] = False

文件夹路径

folder_path = ‘门店数据’ output_folder = ‘门店图表’

创建输出文件夹

os.makedirs(output_folder, exist_ok=True)

遍历所有Excel文件

for file in os.listdir(folder_path):

   if file.endswith('.xlsx'):    # 读取数据    df = pd.read_excel(os.path.join(folder_path, file))    # 生成图表    plt.figure(figsize=(10, 6))    plt.plot(df['月份'], df['销售额(万)'], marker='o', label='销售额')    plt.plot(df['月份'], df['利润(万)'], marker='s', label='利润')    # 标题用门店名    shop_name = file.replace('.xlsx', '')    plt.title(f'{shop_name} 销售趋势', fontsize=16)    plt.xlabel('月份')    plt.ylabel('金额(万)')    plt.legend()    plt.grid(True, linestyle='--', alpha=0.7)    # 保存图表    plt.savefig(f'{output_folder}/{shop_name}_图表.png', dpi=300, bbox_inches='tight')    plt.close()

print(f’✅ 完成!共生成 {len(os.listdir(output_folder))} 张图表’) 

步骤3:运行脚本

在命令行输入:python batch_charts.py即可运行脚本。

运行效果:2分钟后,门店图表 文件夹里多了100张图片。如下图:

进阶操作:把图表插回Excel(把下列代码复制到batch_charts.py中上面代码的后面即可。)

from openpyxl import load_workbook from openpyxl.drawing.image import Image

for file in os.listdir(folder_path): 

   if file.endswith(‘.xlsx’): 

     file_path = os.path.join(folder_path, file) 

     shop_name = file.replace(‘.xlsx’, ”)

    # 把图片插入到Excel(放在E2单元格)    wb = load_workbook(file_path)    ws = wb.active    img = Image(f'{output_folder}/{shop_name}_图表.png')    img.width, img.height = 400, 300    ws.add_image(img, 'E2')    wb.save(file_path)

print(‘✅ 所有图表已插入原文件’) 

接下来,重新运行python_charts.py文件。

打开每个门店的Excel,图表就在里面了。如下图:

还能怎么玩?

改一行代码就能实现下面的需求:

改成柱状图:plt.plot 换成 plt.bar ,同时把参数marker去掉,代码改成如下图:

如果觉得上面的柱状图不好看,想改成并排的柱状图,需要将plt.plot几行代码改为如下几行;

柱状图如下:

改成饼图: plt.pie,适合看占比

100个门店 → 1000个:代码不用改,照样跑 每周自动更新

注意: 把 batch_charts.py文件放在和 门店数据文件夹同级的位置。 

原来4小时的工作,现在2分钟。