项目背景与目标:企业内部的订单、客户、工单等数据分散在多个 CSV、Excel 和数据库里,业务人员想做一次统计要手工拼表,一次分析动辄几个小时,还容易出错。本项目目标是开发一款 Windows 桌面端工具,让非技术人员也能把散落的数据一键导入、自动清洗,并快速得到统计结果和可交付的报表。
核心功能:(1) 支持 CSV / Excel / JSON / SQLite 多种格式批量导入,自动识别编码与分隔符;(2) 可视化字段映射向导,把源字段对应到目标字段并保存为模板复用;(3) 大文件分块解析 + 后台线程处理,界面全程不卡顿;(4) 多维统计分析,支持按时间、区域、类目分组,自动计算同比环比;(5) 一键导出 Excel / PDF 报表,支持定时导出到共享盘;(6) 免安装 exe,双击即用,无需配置运行环境。
业务流程:选择文件 → 配置字段映射 → 后台解析入库并建索引 → 在统计分析页选择维度 → 实时生成图表与明细 → 导出报表或设置定时任务。
整体架构与设计思路:项目采用四层架构,把「界面层 / 业务逻辑层 / 数据层 / 运行发布」彻底解耦。界面层用 PyQt 实现,负责交互与图表渲染;业务逻辑层拆成数据解析引擎、统计分析、检索查询、导出渲染和异步任务调度五个模块;数据层用 SQLite 做本地存储,并对时间、区域等高频查询字段建立索引;运行发布层负责打包与版本管理。所有耗时操作都放进 QThread 后台线程,通过信号槽把进度回传到界面,保证主线程永远不被阻塞。
我个人负责的部分:独立完成需求梳理、架构设计、全部模块编码、测试与发布流程。具体包括:实现多格式统一解析引擎,兼容 UTF-8 / GBK 编码自动识别与分隔符推断;实现可视化字段映射向导并把映射配置保存为可复用模板,把重复导入的准备时间从十几分钟降到几十秒;实现分块读取 + 批量写入 + 索引优化,18 万条记录的聚合统计从 4 秒多降到 0.32 秒;实现 Excel / PDF 报表渲染与定时导出;编写 PyInstaller 打包脚本,并额外写了版本一致性校验脚本——从打包好的 exe 内部逐模块提取代码与当前源码比对,校验通过才覆盖发布版本,从流程上杜绝「改了源码但发布的还是旧版」这类问题。
遇到的难点及解决方案:一是导入大文件时界面假死,通过把解析放入 QThread 并只在主线程更新 UI 解决;二是不同来源的 Excel 表头不统一、格式脏乱,通过字段映射模板 + 类型推断 + 异常值过滤解决;三是数据量上来后统计变慢,通过只查询必要字段、建立复合索引、结果分页解决;四是打包发布容易和源码脱节,通过自动化校验脚本 + 旧版本备份回滚机制解决。