# 📊 销售数据分析器 一个现代化的Web应用程序,用于分析和可视化销售数据。支持Excel文件上传,自动解析销售数据,提供丰富的分析功能和美观的界面展示。 ## ✨ 功能特性 ### 🎯 核心功能 - **Excel文件上传** - 支持.xlsx和.xls格式文件 - **智能数据解析** - 自动识别销售数据结构 - **多文件管理** - 支持多个Excel文件的切换查看 - **数据筛选** - 按金额范围进行数据筛选 - **搜索功能** - 支持商品名称搜索 ### 📊 数据展示 - **销售总览** - 显示总销售额、销售天数、商品种类等统计信息 - **每日详情** - 按日期分组展示销售数据 - **双视图模式** - 支持卡片视图和表格视图切换 - **表格排序** - 点击表头实现数据排序(升序/降序/原始顺序) ### 🎨 用户界面 - **现代化设计** - 采用渐变色彩和卡片式布局 - **响应式设计** - 完美适配桌面和移动设备 - **专业图标** - 使用Font Awesome图标系统 - **加载优化** - 骨架屏和进度条提升用户体验 ### 🔧 技术特性 - **高性能** - 基于Flask框架,快速响应 - **安全性** - 文件上传安全验证和清理功能 - **可扩展** - 模块化设计,易于扩展新功能 ## 🚀 快速开始 ### 系统要求 - **Python** 3.8+ - **操作系统** Windows/Linux/macOS - **浏览器** 现代浏览器(Chrome、Firefox、Safari、Edge) ### 安装步骤 #### 1. 克隆项目 ```bash git clone https://gitea.94kan.cn/houhuan/SaleShow.git cd SaleShow ``` #### 2. 创建虚拟环境(推荐) ```bash # Windows python -m venv venv venv\Scripts\activate # Linux/macOS python -m venv venv source venv/bin/activate ``` #### 3. 安装依赖 ```bash pip install -r requirements.txt ``` #### 4. 运行应用 ```bash python app.py ``` #### 5. 访问应用 打开浏览器,访问:http://localhost:5000 ## 📖 使用指南 ### 上传文件 1. 点击"上传Excel文件"按钮 2. 选择.xlsx或.xls格式的Excel文件 3. 等待文件处理完成 4. 查看分析结果 ### 查看数据 - **左侧面板** - 显示已上传的文件列表,点击可切换查看不同文件 - **顶部统计** - 显示销售总览信息 - **每日数据** - 按日期分组展示详细销售记录 ### 数据操作 - **视图切换** - 点击日期卡片右上角的图标可在卡片视图和表格视图间切换 - **表格排序** - 在表格视图中点击列标题可进行排序 - **数据筛选** - 使用底部的筛选按钮按金额范围筛选数据 - **搜索功能** - 在搜索框中输入商品名称进行搜索 ### 文件管理 - **清理文件** - 点击"清理文件"按钮可删除所有上传的Excel文件 - **自动加载** - 页面刷新时自动加载最新上传的文件 ## 🏗️ 部署说明 ### 开发环境部署 按照"快速开始"部分的步骤即可。 ### 生产环境部署 #### 使用Gunicorn(推荐) ```bash pip install gunicorn gunicorn -w 4 -b 0.0.0.0:8000 app:app ``` #### 使用Docker部署 ```dockerfile FROM python:3.9-slim WORKDIR /app COPY requirements.txt . RUN pip install -r requirements.txt COPY . . EXPOSE 5000 CMD ["python", "app.py"] ``` #### Nginx反向代理配置 ```nginx server { listen 80; server_name your-domain.com; location / { proxy_pass http://127.0.0.1:8000; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; } } ``` ### 环境变量配置 ```bash # 设置Flask环境 export FLASK_ENV=production export FLASK_DEBUG=False # 设置上传文件大小限制(默认16MB) export MAX_CONTENT_LENGTH=16777216 ``` ## 📁 项目结构 ``` SaleShow/ ├── app.py # Flask应用主文件 ├── requirements.txt # Python依赖包列表 ├── templates/ │ └── index.html # 前端HTML模板 ├── uploads/ # 上传文件存储目录(自动创建) ├── __pycache__/ # Python缓存文件 └── README.md # 项目说明文档 ``` ## 🛠️ 技术栈 ### 后端 - **Flask** 2.3.3 - Web框架 - **pandas** 2.3.3 - 数据处理 - **openpyxl** 3.1.5 - Excel文件处理 - **xlrd** 2.0.1 - 旧版Excel文件支持 ### 前端 - **HTML5** - 页面结构 - **CSS3** - 样式设计 - **JavaScript (ES6+)** - 交互功能 - **Font Awesome 6.4.0** - 图标库 ### 开发工具 - **Git** - 版本控制 - **pip** - 包管理 ## 🔒 安全说明 - 文件上传仅支持.xlsx和.xls格式 - 文件大小限制为16MB - 使用安全的文件名处理 - 定期清理上传的文件以释放磁盘空间 ## 🤝 贡献指南 1. Fork 本项目 2. 创建特性分支 (`git checkout -b feature/AmazingFeature`) 3. 提交更改 (`git commit -m 'Add some AmazingFeature'`) 4. 推送到分支 (`git push origin feature/AmazingFeature`) 5. 创建 Pull Request ## 📄 许可证 本项目采用 MIT 许可证 - 查看 [LICENSE](LICENSE) 文件了解详情。 ## 📞 联系方式 如有问题或建议,请通过以下方式联系: - 项目地址:https://gitea.94kan.cn/houhuan/SaleShow - 提交 Issue:项目仓库的Issues页面 --- **最后更新时间:** 2026年1月3日 *享受数据分析的乐趣!📊✨*