news 2026/7/31 22:25:40

导入销售数据,自动生成月度销售报表,含销售额趋势图,top5产品业绩完成率。

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
导入销售数据,自动生成月度销售报表,含销售额趋势图,top5产品业绩完成率。

1. 实际应用场景与痛点

场景

你是某公司销售经理或数据分析师,每月需要从多个渠道汇总销售数据(Excel/CSV),手动制作报表,包括:

- 月度销售额趋势图

- Top5 产品的业绩完成率(实际 vs 目标)

手动操作耗时、易出错,且图表样式不统一,影响汇报效率。

痛点

- 数据分散在不同文件

- 手动制图效率低

- 业绩完成率计算繁琐

- 报表格式不统一

2. 核心逻辑

1. 导入销售数据(支持 CSV/Excel)

2. 按月汇总销售额,绘制趋势折线图

3. 计算每个产品的业绩完成率(实际销售额 / 目标销售额)

4. 筛选 Top5 产品(按完成率或销售额)

5. 生成可视化报表(Matplotlib/Seaborn)

6. 保存为图片或 PDF

3. 代码模块化设计

sales_report/

├── main.py # 主程序入口

├── data_loader.py # 数据加载模块

├── analyzer.py # 数据分析模块

├── visualizer.py # 可视化模块

├── config.py # 配置文件

└── README.md # 使用说明

4. 代码实现(含详细注释)

"config.py"

# 配置参数

DATA_FILE = "sales_data.csv" # 数据文件路径

MONTH_COLUMN = "month" # 月份列名

PRODUCT_COLUMN = "product" # 产品列名

SALES_COLUMN = "actual_sales" # 实际销售额列名

TARGET_COLUMN = "target_sales" # 目标销售额列名

OUTPUT_IMAGE = "monthly_report.png"

"data_loader.py"

import pandas as pd

def load_data(file_path):

"""

加载 CSV 或 Excel 数据

"""

if file_path.endswith('.csv'):

df = pd.read_csv(file_path)

elif file_path.endswith('.xlsx'):

df = pd.read_excel(file_path)

else:

raise ValueError("不支持的文件格式,仅支持 CSV 和 Excel")

return df

"analyzer.py"

import pandas as pd

def monthly_trend(df, month_col, sales_col):

"""

按月汇总销售额

"""

return df.groupby(month_col)[sales_col].sum().sort_index()

def top5_products(df, product_col, actual_col, target_col):

"""

计算 Top5 产品业绩完成率

"""

df['completion_rate'] = df[actual_col] / df[target_col]

top5 = df.nlargest(5, 'completion_rate')[['product', 'completion_rate']]

return top5

"visualizer.py"

import matplotlib.pyplot as plt

import seaborn as sns

def plot_trend(monthly_data, output_path):

"""

绘制月度销售额趋势图

"""

plt.figure(figsize=(10, 5))

sns.lineplot(data=monthly_data)

plt.title("Monthly Sales Trend")

plt.xlabel("Month")

plt.ylabel("Sales")

plt.savefig(output_path)

plt.close()

def plot_top5(top5_df, output_path):

"""

绘制 Top5 产品业绩完成率柱状图

"""

plt.figure(figsize=(8, 5))

sns.barplot(data=top5_df, x='completion_rate', y='product')

plt.title("Top5 Products Completion Rate")

plt.xlabel("Completion Rate")

plt.ylabel("Product")

plt.savefig(output_path)

plt.close()

"main.py"

from data_loader import load_data

from analyzer import monthly_trend, top5_products

from visualizer import plot_trend, plot_top5

from config import *

def main():

print("=== 月度销售报表生成器 ===")

df = load_data(DATA_FILE)

# 分析数据

trend_data = monthly_trend(df, MONTH_COLUMN, SALES_COLUMN)

top5 = top5_products(df, PRODUCT_COLUMN, SALES_COLUMN, TARGET_COLUMN)

# 可视化

plot_trend(trend_data, "trend.png")

plot_top5(top5, "top5.png")

print("✅ 报表生成完成!趋势图: trend.png, Top5: top5.png")

if __name__ == "__main__":

main()

5. README.md

# 月度销售报表生成器

一个轻量级 Python 工具,导入销售数据,自动生成月度销售额趋势图和 Top5 产品业绩完成率报表。

## 功能

- 支持 CSV/Excel 数据导入

- 自动计算月度销售额趋势

- 自动计算 Top5 产品业绩完成率

- 生成可视化图表

## 安装

确保 Python 3.7+ 环境,安装依赖:

bash

pip install pandas matplotlib seaborn openpyxl

## 使用

1. 准备销售数据文件 `sales_data.csv`,包含列:`month`, `product`, `actual_sales`, `target_sales`

2. 运行:

bash

python main.py

3. 查看生成的 `trend.png` 和 `top5.png`

## 配置

修改 `config.py` 可调整数据文件路径和列名。

6. 使用说明

1. 准备销售数据 CSV/Excel,格式示例:

month,product,actual_sales,target_sales

2024-01,A,10000,12000

2024-01,B,15000,15000

...

2. 运行

"main.py"

3. 程序会生成两张图:

-

"trend.png":月度销售额趋势

-

"top5.png":Top5 产品业绩完成率

7. 核心知识点卡片

知识点 说明

Pandas 数据加载、分组、计算

Matplotlib/Seaborn 数据可视化

模块化设计 数据加载、分析、可视化分离

配置化 通过

"config.py" 管理参数

业绩完成率计算 实际/目标,筛选 Top5

文件格式支持 CSV/Excel 自动识别

8. 总结

这个工具解决了销售数据手动分析效率低的痛点,适合企业管理者、销售分析师使用。

它的核心优势是自动化、可视化、易扩展。

未来可以升级:

- 支持多表合并

- 增加 PDF 报告导出

- 接入数据库

- 增加 Web 界面

如果你愿意,可以升级成带 PDF 报告导出 + Web 界面的版本,让它在公司内网直接使用。

利用AI高效解决实际问题,如果你觉得这个工具好用,欢迎关注我!

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/30 3:07:42

SIMATIC授权管理入门:5分钟学会基础操作

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 创建一个面向初学者的SIMATIC授权管理教学程序,要求:1. 提供最简单的授权检查功能;2. 分步指导完成授权更新操作;3. 包含常见问题解…

作者头像 李华
网站建设 2026/7/31 4:56:22

电商秒杀系统实战:Redis集群安装与优化全记录

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 开发一个电商秒杀系统的Redis集群部署方案,包含:1.3节点Redis Cluster自动部署脚本 2.内存优化配置参数 3.持久化策略设置 4.哨兵监控配置 5.压测工具集成(…

作者头像 李华
网站建设 2026/7/31 0:26:43

RELU在CV实战:用5行代码实现图像分类模型

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 构建一个基于PyTorch的CIFAR-10图像分类项目,使用RELU作为CNN的激活函数。要求:1. 包含数据加载和预处理代码 2. 实现3层CNN架构 3. 比较Sigmoid和RELU的性…

作者头像 李华
网站建设 2026/7/30 4:35:11

告别手动查找!3分钟自动获取所有Redis下载地址

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 开发一个Redis下载地址自动收集工具,功能:1.自动爬取Redis官网和镜像站所有版本下载链接 2.按版本号排序整理 3.检测链接有效性 4.生成Markdown格式的下载地…

作者头像 李华
网站建设 2026/7/24 4:29:19

AI如何自动生成Python项目的requirements.txt文件

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 创建一个Python工具,能够自动扫描指定目录下的Python项目,分析所有import语句和依赖关系,生成符合pip格式的requirements.txt文件。要求支持识别…

作者头像 李华
网站建设 2026/7/28 15:01:37

22G614标准验证:10分钟快速生成合规钢结构节点

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 创建22G614快速验证工具。功能:1. 输入基本参数即时生成3D模型 2. 自动检查规范符合性 3. 支持参数微调实时更新 4. 导出简化计算书。使用Three.js实现浏览器端实时渲染…

作者头像 李华