TableSynthesis/README.md
2025-06-30 10:36:41 +08:00

147 lines
4.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 座位分配系统
智能座位分配工具支持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文件。