Skip to content
forked from d8349565/Excel--

一个简单好用的网页版Excel文件合并工具,拖拽上传、一键合并,无需安装Excel也能轻松处理数据!

Notifications You must be signed in to change notification settings

hntjb/ExcelMerge

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

48 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Excel/CSV 汇总工具

一个功能强大的基于 Flask 的 Web 应用程序,专为 Excel/CSV 文件处理而设计。提供完整的文件上传、预览、管理和数据处理解决方案,支持批量数据合并、单元格提取、列排序等高级功能。通过直观的 Web 界面,用户可以轻松处理大量 Excel/CSV 数据,无需复杂的编程知识。

1758965944705

1758715051137

主要特性

  • 🔐 安全认证: 双层密码保护系统,支持普通用户和管理员权限
  • 📁 智能文件管理: 支持 Excel (.xlsx/.xls) 和 CSV 文件上传,自动文件验证和清理
  • 👀 实时预览: 文件内容实时预览,支持分页显示和数据筛选
  • 🔄 批量数据合并: 多文件智能合并,支持自定义合并规则和冲突处理
  • 📊 异步任务处理: 后台任务队列,确保大文件处理不阻塞界面
  • 📝 完整日志记录: 用户操作详细日志,支持管理员审计
  • 🗂️ 管理员面板: 专属管理界面,查看系统状态和用户活动
  • � 数据分析: 专业级数据透视表,支持拖拽字段配置和统计分析
  • 📈 可视化图表: 多种图表类型,支持自定义汇总方式和交互式配置
  • 🗃️ 结果管理: 完整的处理结果管理页面,支持批量操作和数据预览
  • 🐳 容器化部署: Docker 一键部署,支持生产环境快速上线
  • 📦 便携打包: PyInstaller 生成独立可执行文件,无需安装 Python 环境

技术栈

  • 后端: Flask (Python)
  • 前端: HTML/CSS/JavaScript, Bootstrap
  • 数据处理: Pandas, OpenPyXL
  • 任务管理: 自定义异步任务系统
  • 容器化: Docker & Docker Compose

快速开始

本地运行

  1. 克隆项目

    git clone https://github.com/d8349565/Excel--.git
    cd Excel--
  2. 安装依赖

    cd excel_tool
    pip install -r requirements.txt
  3. 运行应用

    python app.py

    或使用启动脚本:

    start.bat
  4. 访问应用

    打开浏览器访问 http://localhost:5000

Docker 部署

  1. 构建并运行

    cd docker
    docker-compose up -d
  2. 访问应用

    打开浏览器访问 http://localhost:9999

配置说明

环境变量

  • SECRET_KEY: Flask 应用密钥
  • ACCESS_PASSWORD: 用户访问密码(默认: 123456)
  • ADMIN_PASSWORD: 管理员密码(默认: admin2025)

文件限制

  • 单个文件最大: 100MB
  • 总上传限制: 500MB
  • 支持格式: .xlsx, .xls, .csv

使用指南

  1. 登录: 使用访问密码登录系统
  2. 上传文件: 选择并上传 Excel/CSV 文件
  3. 预览文件: 点击文件查看内容预览
  4. 合并数据: 选择多个文件进行数据合并
  5. 下载结果: 下载处理后的合并文件
  6. 管理员功能: 使用管理员密码查看用户操作日志
  7. 数据分析: 使用透视表和可视化功能分析数据
  8. 批量管理: 在结果页面进行文件的批量下载和删除操作

项目结构

Excel--
├── excel_tool/              # 主应用目录
│   ├── app.py              # Flask 应用主文件
│   ├── config.py           # 配置文件
│   ├── data_processor.py   # 数据处理模块
│   ├── file_manager.py     # 文件管理模块
│   ├── task_manager.py     # 任务管理模块
│   ├── user_logger.py      # 用户日志模块
│   ├── templates/          # HTML 模板
│   ├── static/             # 静态文件 (CSS/JS)
│   ├── uploads/            # 上传文件目录
│   ├── results/            # 处理结果目录
│   ├── logs/               # 日志文件目录
│   └── requirements.txt    # Python 依赖
├── docker/                 # Docker 部署配置
│   ├── Dockerfile
│   ├── docker-compose.yml
│   └── README.md
├── exe打包命令             # PyInstaller 打包命令
└── README.md              # 项目说明

开发说明

打包为可执行文件

使用 PyInstaller 打包:

cd excel_tool
pyinstaller --onefile --add-data "templates;templates" --add-data "static;static" app.py

任务管理

应用使用自定义的任务管理系统支持异步处理:

  • 最大并发任务数: 5
  • 任务超时时间: 1小时
  • 支持任务状态跟踪和结果获取

安全特性

  • 用户会话管理
  • 文件上传验证
  • 密码保护访问
  • 管理员权限控制
  • 自动文件清理(1天保留期)

许可证

本项目允许个人使用和商业使用,但需要注明源代码作者和项目地址。

作者: d8349565 项目地址: https://github.com/d8349565/Excel--

赞赏支持

如果这个项目对你有帮助,欢迎请作者喝一杯咖啡!☕

微信赞赏

贡献

欢迎提交 Issue 和 Pull Request 来改进项目。

更新日志

v1.4.0 (2025-10-16)

  • 🎯 固定单元格功能重构:
    • 从文件特定配置改为通用规则模式,一次配置应用于所有文件
    • 支持从所有文件的同名工作表中提取固定单元格数据
    • 优化数据源到文件的自动映射机制
    • 修复导入配置后单元格预览失效问题
    • 增强日志输出,便于调试和问题排查
  • 预览性能优化:
    • 快速预览模式:只加载前3个文件的部分数据
    • 预览数据量从10行/文件降至5行/文件
    • 添加快速预览模式标识和提示
  • 🎨 预览界面优化:
    • 数字字段显示为2位小数,提升数据可读性
    • 文本内容居中对齐,数值右对齐且右侧留空
    • 智能单元格样式识别,自动应用最佳对齐方式
    • 悬停提示优化,居中显示完整内容
  • 📦 配置管理改进:
    • 移除自动保存配置功能,避免缓存污染
    • 保留手动保存和导入导出功能
    • 修复配置保存时的字段读取错误
    • 优化配置元数据提取逻辑
  • 🐛 问题修复:
    • 修复固定单元格在汇总时只有第一个文件生效的问题
    • 修复预览时无法显示固定单元格列的问题
    • 修复数据源名称映射不匹配导致的数据丢失
    • 修复保存配置时 window.filesData 未定义的错误
  • 🔧 代码优化:
    • 统一字段命名规范,支持驼峰和下划线两种格式
    • 增强错误处理和异常捕获
    • 添加详细的调试日志和性能监控
    • 优化代码结构,提升可维护性

v 1.3.0 (2025-09-26)

  • 🚀 重大功能更新: 全新结果管理页面
  • 📊 数据透视表:
    • 拖拽式字段配置,支持行、列、数值字段自定义
    • 智能数据统计分析,包含记录数、数值分布等概览信息
    • 现代化卡片式设计,紧凑布局和自动列宽优化
    • 表头点击排序功能,支持升序/降序切换和视觉反馈
  • 📈 数据可视化:
    • 支持柱状图、折线图、饼图、散点图等多种图表类型
    • 可自定义数值汇总方式(求和、平均值、计数、最大值、最小值)
    • 拖拽式图表配置,直观的字段映射界面
  • 🗃️ 结果管理功能:
    • 批量文件操作,支持多选下载和删除
    • 全选/取消全选功能,提升批量操作体验
    • 文件预览功能,快速查看处理结果
  • 🎨 界面优化:
    • Bootstrap 5 现代化设计,响应式布局
    • 统一主题色彩方案,专业视觉体验
    • 流畅的动画效果和交互反馈
  • 🔧 技术改进:
    • 多进程任务管理优化,解决 gunicorn 部署问题
    • 基于文件的任务状态共享机制
    • 完善的错误处理和用户提示系统

v 1.2.0 (2025-09-24)

  • ✨ 新增单元格提取功能
  • 🔧 优化配置管理
  • 🎨 优化系统管理员界面
  • 📋 优化列管理逻辑,新增拖拽排序
  • 🐛 修复部分bug

v 1.1.0

  • 🐛 修复 bug

v 1.0.0

  • 初始版本发布
  • 支持文件上传、预览、合并
  • 用户认证和管理员功能
  • Docker 容器化支持

About

一个简单好用的网页版Excel文件合并工具,拖拽上传、一键合并,无需安装Excel也能轻松处理数据!

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages

  • HTML 46.9%
  • Python 35.0%
  • JavaScript 14.2%
  • CSS 3.5%
  • Other 0.4%