# 座位分配系统 智能座位分配工具,支持1-10人连坐需求,能够处理不连续座位的复杂情况。 ## 🎯 功能特点 - ✅ **智能分配**: 支持1-10人的各种连坐需求 - ✅ **数据校验**: 完整的文件格式和逻辑校验 - ✅ **不连续座位**: 自动处理座位号间隙 - ✅ **详细日志**: 完整的操作记录和结果验证 - ✅ **跨平台**: 支持Windows、macOS、Linux ## 📋 使用方法 ### 准备Excel文件 1. **人员信息.xlsx** - 包含以下列: - 姓名、证件类型、证件号、手机号、备注 - 备注数字表示连坐人数(如:备注4表示当前行+后3行共4人连坐) 2. **座位信息.xlsx** - 包含以下列: - 区域、楼层、排号、座位号 ### 运行程序 #### Python环境运行 ```bash # 安装依赖 pip install pandas openpyxl # 运行程序 python seat_allocation_system.py ``` #### 构建可执行文件 ```bash # 在当前平台构建 python simple_build.py # 跨平台构建(macOS构建Windows版本) python cross_platform_build.py ``` ### 查看结果 程序运行后会生成: - `座位信息_最终分配.xlsx` - 最终分配结果 - `最终座位分配日志.xlsx` - 详细分配记录 - `seat_allocation_log.txt` - 完整运行日志 ## 🔧 构建选项 ### 本地构建 ```bash # 简单构建(推荐) python simple_build.py ``` ### 跨平台构建 ```bash # 在macOS上构建Windows版本 python cross_platform_build.py ``` ### 自动化构建 使用GitHub Actions自动构建多平台版本: 1. 将 `build_workflow.yml` 放入 `.github/workflows/` 目录 2. 推送到GitHub仓库 3. 自动构建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号 ``` ## ⚠️ 注意事项 1. **备注逻辑**: 备注数字表示连坐人数,只有组长填写备注,成员留空 2. **证件号格式**: 支持包含X的身份证号,自动处理为字符串格式 3. **文字清理**: 自动清除姓名等字段的多余空格 4. **座位连续性**: 支持不连续座位号,算法会自动寻找合适的连续段 ## 🔍 故障排除 ### 常见问题 1. **文件格式错误**: 确保Excel文件包含必需的列 2. **编码问题**: 确保Excel文件使用UTF-8编码 3. **权限问题**: 确保有读写Excel文件的权限 4. **内存不足**: 处理大量数据时可能需要更多内存 ### 技术支持 如遇问题,请查看生成的日志文件: - `seat_allocation_log.txt` - 详细的运行日志 - 控制台输出 - 实时处理信息 ## 📈 版本历史 - **v1.0** - 初始版本,支持基本座位分配 - **v1.1** - 添加数据校验和错误处理 - **v1.2** - 支持不连续座位处理 - **v1.3** - 优化数据类型处理,支持跨平台构建 ## 📄 许可证 本项目采用MIT许可证,详见LICENSE文件。