一、立项背景:中小电商卖家日常需要查看销售趋势、分析产品利润、生成周报,但大部分BI工具太重或者需要付费。这个项目解决的就是"一个exe搞定数据分析和周报"的需求,用户不需要配环境也不需要学Python,拿过来就能用
二、核心功能模块:
1. 多格式数据加载:支持Excel、CSV、Word表格一键导入,支持路径浏览和关键词搜索两种定位方式
2. 智能数据清洗:自动检测缺失值、异常值(IQR方法)、重复订单、负值金额,处理完后弹窗给出详细清洗报告
3. 可视化分析面板:7种图表以标签页展示,包括销售趋势(7日均线)、热销产品TOP10、品类饼图、城市双轴图、产品利润对比柱状图、订单状态分析和每日订单量趋势,图表直接嵌入程序界面,不需要额外窗口
4. 一键PDF周报:基于ReportLab生成包含KPI汇总表和全部图表的专业PDF,自动保存到桌面
5. 内置演示数据:90天模拟电商数据,10款产品10个城市,启动即用,方便演示和测试
三、业务流程:用户启动程序 -> 自动加载演示数据/手动导入自己的数据文件 -> 程序自动清洗数据并弹窗反馈 -> 在图表标签页查看各维度分析 -> 点击生成周报PDF -> 报告保存到桌面
一、整体架构:采用PyQt6构建桌面GUI(深色主题),matplotlib负责图表渲染并嵌入Qt窗口,pandas做数据处理层,ReportLab生成PDF。程序启动时如果没加载外部数据,自动用numpy+random生成模拟数据集。最终通过PyInstaller打包成单文件exe(约80MB),用C#编写了独立的安装向导(setup.exe),支持选择安装路径、创建快捷方式、注册到Windows卸载列表
二、我负责的是整个项目从零到一的开发,包括需求分析、UI设计、数据处理逻辑、图表样式调优、PDF模板排版、PyInstaller打包配置、以及安装向导的编写。最终交付一个78MB的单文件exe和完整的安装包,在Windows 10/11上无需任何依赖直接运行
三、遇到的主要难点:第一个是matplotlib图表嵌入PyQt6时的内存管理,频繁切换标签页会导致Figure对象不释放、内存持续增长,最后在每个标签页切换时手动清理旧的FigureCanvas并调用plt.close释放资源才解决。第二个是PyInstaller打包时matplotlib后端和字体文件容易遗漏,通过--hidden-import和--add-data手动指定后才稳定。第三个是PDF中文支持,ReportLab默认不带中文字体,通过注册系统字体(SimHei/微软雅黑)并设置ParagraphStyle的fontName才搞定