.github/workflows | ||
.idea | ||
build_workflow.yml | ||
cross_platform_build.py | ||
README.md | ||
requirements.txt | ||
seat_allocation_system.py | ||
simple_build.py | ||
windows_build.py | ||
Windows部署说明.md | ||
人员信息.xlsx | ||
座位信息.xlsx |
座位分配系统
智能座位分配工具,支持1-10人连坐需求,能够处理不连续座位的复杂情况。
🎯 功能特点
- ✅ 智能分配: 支持1-10人的各种连坐需求
- ✅ 数据校验: 完整的文件格式和逻辑校验
- ✅ 不连续座位: 自动处理座位号间隙
- ✅ 详细日志: 完整的操作记录和结果验证
- ✅ 跨平台: 支持Windows、macOS、Linux
📋 使用方法
准备Excel文件
-
人员信息.xlsx - 包含以下列:
- 姓名、证件类型、证件号、手机号、备注
- 备注数字表示连坐人数(如:备注4表示当前行+后3行共4人连坐)
-
座位信息.xlsx - 包含以下列:
- 区域、楼层、排号、座位号
运行程序
Python环境运行
# 安装依赖
pip install pandas openpyxl
# 运行程序
python seat_allocation_system.py
构建可执行文件
# 在当前平台构建
python simple_build.py
# 跨平台构建(macOS构建Windows版本)
python cross_platform_build.py
查看结果
程序运行后会生成:
座位信息_最终分配.xlsx
- 最终分配结果最终座位分配日志.xlsx
- 详细分配记录seat_allocation_log.txt
- 完整运行日志
🔧 构建选项
本地构建
# 简单构建(推荐)
python simple_build.py
跨平台构建
# 在macOS上构建Windows版本
python cross_platform_build.py
自动化构建
使用GitHub Actions自动构建多平台版本:
- 将
build_workflow.yml
放入.github/workflows/
目录 - 推送到GitHub仓库
- 自动构建Windows x86/x64和macOS版本
📁 文件说明
核心文件
seat_allocation_system.py
- 主程序simple_build.py
- 简化构建脚本cross_platform_build.py
- 跨平台构建脚本requirements.txt
- Python依赖
配置文件
build_workflow.yml
- GitHub Actions工作流人员信息.xlsx
- 示例人员数据座位信息.xlsx
- 示例座位数据
🎯 支持的平台
直接运行
- Windows 7/8/10/11 (x86/x64/ARM64)
- macOS 10.14+ (Intel/Apple Silicon)
- Linux (x86_64/ARM64)
构建目标
- Windows x86 - 32位兼容版本
- Windows x64 - 64位主流版本
- macOS - Intel和Apple Silicon
- Linux - 主流发行版
📊 数据格式要求
人员信息格式
姓名 | 证件类型 | 证件号 | 手机号 | 备注
张三 | 身份证 | 123456789012345678 | 13800138000 | 2
李四 | 身份证 | 123456789012345679 | 13800138001 |
王五 | 身份证 | 12345678901234567X | 13800138002 | 3
赵六 | 身份证 | 123456789012345680 | 13800138003 |
钱七 | 身份证 | 123456789012345681 | 13800138004 |
座位信息格式
区域 | 楼层 | 排号 | 座位号
A区通道 | 一层 | 1排 | 1号
A区通道 | 一层 | 1排 | 2号
A区通道 | 一层 | 1排 | 3号
⚠️ 注意事项
- 备注逻辑: 备注数字表示连坐人数,只有组长填写备注,成员留空
- 证件号格式: 支持包含X的身份证号,自动处理为字符串格式
- 文字清理: 自动清除姓名等字段的多余空格
- 座位连续性: 支持不连续座位号,算法会自动寻找合适的连续段
🔍 故障排除
常见问题
- 文件格式错误: 确保Excel文件包含必需的列
- 编码问题: 确保Excel文件使用UTF-8编码
- 权限问题: 确保有读写Excel文件的权限
- 内存不足: 处理大量数据时可能需要更多内存
技术支持
如遇问题,请查看生成的日志文件:
seat_allocation_log.txt
- 详细的运行日志- 控制台输出 - 实时处理信息
📈 版本历史
- v1.0 - 初始版本,支持基本座位分配
- v1.1 - 添加数据校验和错误处理
- v1.2 - 支持不连续座位处理
- v1.3 - 优化数据类型处理,支持跨平台构建
📄 许可证
本项目采用MIT许可证,详见LICENSE文件。