首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Python 自动化办公实战:Excel 数据处理与图表生成全流程

Python 自动化办公实战:Excel 数据处理与图表生成全流程

原创
作者头像
用户11690575
发布2025-06-10 09:24:02
发布2025-06-10 09:24:02
38400
代码可运行
举报
运行总次数:0
代码可运行

用 Python 实现自动化处理 Excel 文件,完成数据清洗、分析与图表可视化,从此告别手工复制粘贴的低效时代!


一、自动化办公为何首选 Python?

在现代办公中,数据处理已是日常,但手动处理大量 Excel 文件,不仅效率低,还易出错。

选择 Python 的原因:

  • 丰富的办公自动化库(如 openpyxl、pandas、xlwings)
  • 跨平台、脚本可复用
  • 可扩展至图表、批处理、邮件发送等功能

本项目将演示以下流程:

  1. 读取 Excel 表格数据
  2. 数据清洗与分析(统计、分组、排序)
  3. 自动生成图表(柱状图/折线图)
  4. 输出结果表格 + 图表嵌入

二、准备工作

安装依赖

代码语言:javascript
代码运行次数:0
运行
复制
bash复制编辑pip install openpyxl pandas matplotlib

示例数据文件 sales_data.xlsx

字段包括:

日期

区域

销售员

产品

销量

单价

2025-06-01

华东

张三

A类

100

20

2025-06-01

华北

李四

B类

120

18


三、读取 Excel 数据

使用 pandas 读取表格内容:

代码语言:javascript
代码运行次数:0
运行
复制
python复制编辑import pandas as pd

df = pd.read_excel("sales_data.xlsx")
print(df.head())

示例输出:

代码语言:javascript
代码运行次数:0
运行
复制
css复制编辑          日期   区域  销售员  产品   销量   单价
0  2025-06-01  华东   张三   A类  100   20
1  2025-06-01  华北   李四   B类  120   18

四、数据处理与清洗

1. 增加销售额字段

代码语言:javascript
代码运行次数:0
运行
复制
python复制编辑df["销售额"] = df["销量"] * df["单价"]

2. 按区域统计总销售额

代码语言:javascript
代码运行次数:0
运行
复制
python复制编辑area_summary = df.groupby("区域")["销售额"].sum().reset_index()
print(area_summary)

示例结果:

区域

销售额

华东

5400

华北

4500

3. 按产品分类统计销售总量

代码语言:javascript
代码运行次数:0
运行
复制
python复制编辑product_summary = df.groupby("产品")["销量"].sum().sort_values(ascending=False)

五、生成图表并保存

1. 柱状图(产品销量)

代码语言:javascript
代码运行次数:0
运行
复制
python复制编辑import matplotlib.pyplot as plt

plt.figure(figsize=(8, 6))
product_summary.plot(kind="bar", color="skyblue")
plt.title("各产品销量统计")
plt.xlabel("产品")
plt.ylabel("销量")
plt.tight_layout()
plt.savefig("product_sales.png")
plt.show()

📷 效果图如下:


2. 折线图(每日销售额变化)

如果你的数据中日期较多,可绘制销售额随时间的变化:

代码语言:javascript
代码运行次数:0
运行
复制
python复制编辑daily_sales = df.groupby("日期")["销售额"].sum()

plt.figure(figsize=(10, 5))
daily_sales.plot(kind="line", marker="o")
plt.title("每日销售额变化")
plt.ylabel("销售额")
plt.grid(True)
plt.tight_layout()
plt.savefig("daily_sales.png")

六、将图表插入新的 Excel 报告中

使用 openpyxl 插入图表图片:

代码语言:javascript
代码运行次数:0
运行
复制
python复制编辑from openpyxl import Workbook
from openpyxl.drawing.image import Image

wb = Workbook()
ws = wb.active
ws.title = "销售图表报告"

# 插入图片
img = Image("product_sales.png")
ws.add_image(img, "A1")

img2 = Image("daily_sales.png")
ws.add_image(img2, "A20")

wb.save("sales_report.xlsx")

七、批量处理多个 Excel 文件

若你有多个文件(如每月一个表格),可批处理:

代码语言:javascript
代码运行次数:0
运行
复制
python复制编辑import glob

all_data = pd.DataFrame()

for file in glob.glob("data/month_*.xlsx"):
    df = pd.read_excel(file)
    df["销售额"] = df["销量"] * df["单价"]
    all_data = pd.concat([all_data, df], ignore_index=True)

print("合并后数据量:", all_data.shape)

八、自动邮件发送(拓展)

办公自动化也可配合邮件通知,自动发送报告:

代码语言:javascript
代码运行次数:0
运行
复制
python复制编辑import smtplib
from email.message import EmailMessage

msg = EmailMessage()
msg["Subject"] = "月度销售报告"
msg["From"] = "me@example.com"
msg["To"] = "boss@example.com"
msg.set_content("您好,附件为本月销售报告,请查收。")

with open("sales_report.xlsx", "rb") as f:
    msg.add_attachment(f.read(), maintype="application", subtype="vnd.openxmlformats-officedocument.spreadsheetml.sheet", filename="sales_report.xlsx")

with smtplib.SMTP_SSL("smtp.example.com", 465) as smtp:
    smtp.login("me@example.com", "password")
    smtp.send_message(msg)

九、完整项目结构建议

代码语言:javascript
代码运行次数:0
运行
复制
css复制编辑📂excel_auto_report
├── sales_data.xlsx
├── sales_report.xlsx
├── product_sales.png
├── daily_sales.png
├── main.py
└── readme.md

十、总结与拓展思路

本项目实战涵盖了:

  • Excel 数据读取与处理(pandas)
  • 自动计算统计指标
  • 图表生成(matplotlib)
  • 图片插入新 Excel(openpyxl)
  • 可扩展批处理 + 邮件通知

📌 拓展方向:

拓展项

工具或建议

GUI 自动化工具

PyQt, Tkinter

自动上传云端

接入 OneDrive/阿里云 SDK

支持 xls 格式

xlrd, xlwt

Web 页面展示图表

Flask + echarts

微信机器人推送报告

企业微信 API

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、自动化办公为何首选 Python?
  • 二、准备工作
    • 安装依赖
    • 示例数据文件 sales_data.xlsx
  • 三、读取 Excel 数据
  • 四、数据处理与清洗
    • 1. 增加销售额字段
    • 2. 按区域统计总销售额
    • 3. 按产品分类统计销售总量
  • 五、生成图表并保存
    • 1. 柱状图(产品销量)
    • 2. 折线图(每日销售额变化)
  • 六、将图表插入新的 Excel 报告中
  • 七、批量处理多个 Excel 文件
  • 八、自动邮件发送(拓展)
  • 九、完整项目结构建议
  • 十、总结与拓展思路
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档