# 工资明细转换工具 这是一个用于批量转换Excel工资明细表的图形界面工具。 ## 功能特点 1. 批量导入Excel文件并根据模板进行转换 2. 自定义设置每个文件的公司、银行和其他信息 3. 按照指定的单元格映射规则转换数据 4. 自动生成包含员工姓名和日期的输出文件名 5. 支持复制和保留原始Excel的格式和样式 ## 环境要求 - Python 3.7 或更高版本 - 依赖包:pandas, openpyxl, xlrd, xlwt ## 快速开始 1. 确保已安装Python环境(3.7或更高版本) 2. 使用uv创建虚拟环境: ```bash uv venv ``` 3. 激活虚拟环境: ```bash # Windows .venv\Scripts\activate # macOS/Linux source .venv/bin/activate ``` 4. 安装依赖包: ```bash uv pip install -r requirements.txt ``` 5. 运行程序: ```bash # 方法1: 直接运行Python脚本 python main.py # 方法2: 使用批处理文件 (Windows) run.bat ``` ## 使用方法 1. 在界面上点击"选择Excel文件"按钮选择要转换的Excel文件 2. 双击列表中的每个文件,设置公司信息(C2)、银行信息(B30)和其他信息(F2) 3. 点击"选择导出位置"按钮选择输出文件保存位置 4. 点击"开始转换"按钮进行批量转换 5. 转换完成后会显示成功转换的文件数量 ## 文件命名规则 输出文件名格式为:`YYYY年M月份給料明細書-姓名.xls` - 年份(YYYY):从输入文件第二个Sheet页的B4单元格中提取 - 月份(M):从输入文件第二个Sheet页的B4单元格中提取 - 姓名:从输入文件第一个Sheet页的C3单元格中提取 ## 配置指南 ### 修改模板路径 在 `config.py` 文件中修改 `TEMPLATE_PATH` 变量。 ### 修改单元格映射关系 在 `config.py` 文件中的 `CELL_MAPPINGS` 字典中定义映射关系: ```python { (源文件sheet索引, 行, 列): (目标文件sheet索引, 行, 列) } ``` ### 修改公司和银行列表 编辑 `config.py` 文件中的 `COMPANY_OPTIONS` 和 `BANK_OPTIONS` 列表即可添加或删除选项。 ## 常见问题解决 ### 程序启动失败 - 检查 Python 版本是否兼容 (3.7+) - 确认所有依赖已正确安装 - 检查模板文件是否存在于指定路径 ### 转换后的文件格式不正确 - 确认模板文件格式无误 - 检查输入文件是否符合要求的格式 - 确认映射关系配置正确 ### 无法识别日期 如果程序无法正确识别日期格式,可能需要在 `app.py` 的 `process_file` 方法中添加更多的日期解析逻辑。 ## 项目结构 ``` excel_converter/ ├── app.py # 主应用程序代码 ├── config.py # 配置文件 ├── main.py # 入口点 ├── requirements.txt # 依赖列表 ├── run.bat # Windows 运行脚本 ├── README.md # 项目说明 ├── template.xlsx # Excel模板文件 └── test_data/ # 测试数据目录 ``` ## 维护和扩展 ### 添加新功能 1. 尽量将配置参数放在 `config.py` 文件中 2. 保持用户界面简洁直观 3. 添加适当的错误处理和用户反馈 ### 代码维护 - 定期更新依赖包版本 - 如果更改了核心功能,请更新文档 - 考虑添加单元测试以确保功能正常