华南农业大学报销单记录工具
报账系统 是一个专为华南农业大学报账小助理设计的报销管理工具,方便在报账后进行数据的录入工作,支持日常报销单和差旅费报销单的智能解析、发票管理、人员管理、数据入库与导出等功能。
本软件的开发,旨在提升实验室经费报销效率,减少人工录入错误。
由于本人结束了报账工作,所以将此软件开源,希望能帮到同学们进行日常报账工作。
| 功能 | 说明 |
|---|---|
| 📄 智能解析 | 粘贴报销单文本,自动提取预约单号、经费号、发票号、金额、备注等信息 |
| 💳 发票管理 | 自动识别发票明细表,支持多张发票列表展示与金额合计 |
| 👥 人员管理 | 管理实验室成员信息(姓名、年级、学号、银行卡号等) |
| 📦 附件归档 | 支持选择报销附件,自动压缩为 ZIP 归档 |
| 💾 数据入库 | 报销单和发票信息自动写入 SQLite 数据库 |
| 🔍 数据查询 | 按预约单号、业务号、发票号、经费号等多维度检索 |
| 📥 数据导出 | 查询结果一键导出为 CSV 文件 |
| ⚙️ 批量设置 | 弹窗多选发票行,批量设置所属人(年级 + 人员) |
| 🧠 智能推断 | 根据报销内容自动推断报销项目类型 |
┌─────────────────────────────────────────────────────────┐
│ 实验室报账系统 v1.0 │
├───────────────────┬─────────────────────────────────────┤
│ │ 单据类型:日常报销单 │
│ 1. 粘贴报销单 │ 预约单号:03202604210503 │
│ │ 业务号 :YB202604210954 │
│ ┌─────────┐ │ ... │
│ │ 粘贴文本 │ │ 发票清单: │
│ │ │ │ ┌──────────────────────────────┐ │
│ │ │ │ │ 发票号 │ 金额 │ 人员 │ │
│ │ │ │ │ 261120...0941│ 2600 │ 张三 │ │
│ │ │ │ │ 261120...4826│ 2800 │ 张三 │ │
│ └─────────┘ │ └──────────────────────────────┘ │
│ [解析文本 >>] │ 合计:8000.00 元 │
│ │ [+ 手动新增发票] [💾 保存入库] │
└───────────────────┴─────────────────────────────────────┘
| 技术 | 用途 |
|---|---|
| Python 3 | 编程语言 |
| tkinter | 桌面 GUI 框架 |
| SQLite3 | 本地关系数据库 |
| PyInstaller | 打包为独立 EXE |
| zipfile / csv | 文件归档与数据导出 |
reimbursement-system/
├── src/ # 源代码
│ ├── main.py # 主程序入口(核心逻辑 + GUI)
│ └── database_setup.py # 数据库初始化脚本
├── logo.ico # 应用程序图标
├── 示例/ # 报销单示例文本
│ ├── 1.txt
│ ├── ...
│ └── 7.txt
├── requirements.txt # 依赖说明
├── 打包说明.txt # PyInstaller 打包指南
├── 软件架构说明.txt # 软件架构设计说明
└── README.md # 本文件
- 首次运行:启动程序会自动创建
lab_billing_system.db数据库文件 - 管理人员:点击顶部「⚙️ 打开人员库管理」添加实验室成员
- 录入报销单:
- 复制报销单文本(从学校财务系统获取)
- 粘贴到左侧文本框
- 点击「解析文本 >>」自动提取信息
- 核对确认右侧提取结果
- 点击「💾 保存并归档入库」
- 查询与导出:点击「📊 数据查询」查看历史记录,支持多维度筛选和 CSV 导出
- 系统自动识别「发票明细」表格中的每一行发票
- 支持手动新增/删除发票行
- 可以批量设置发票所属人(年级 + 人员)
- 日常报销单:自动识别"经费号"表格列、发票金额、备注等
- 差旅费报销单:自动识别出差人姓名作为归属人,不进行发票识别
❓ 点击"解析文本"后金额显示为 0? 确认文本中包含 "发票明细" 表格,且金额列有数据。如果发票号在"附言"中而不在表格中,系统会回退提取 20 位发票号,此时金额需要手动填写。
❓ 提示 "数据库错误"? 删除目录下的
lab_billing_system.db文件后重新运行,程序会自动重建。
❓ 保存按钮不见了? 将窗口拉大即可。v1.0 已设置最小窗口尺寸 (1000×720)。
欢迎提交 Issue 和 Pull Request!
- Fork 本仓库
- 创建特性分支:
git checkout -b feature/your-feature - 提交修改:
git commit -m 'Add some feature' - 推送分支:
git push origin feature/your-feature - 提交 Pull Request
- 遵循 PEP 8 编码规范
- 函数/变量命名使用英文,用户界面文本使用中文
- 关键逻辑需添加注释
- 添加新功能时同步更新测试用例
- Python 3.10 或更高版本
- Windows / macOS / Linux
⚠️ 注意:本软件在 Windows 10/11 下开发和测试,其他平台可能需调整 UI 适配。
git clone https://github.com/your-username/reimbursement-system.git
cd reimbursement-system或直接下载 Release 页面 中的压缩包。
cd src
python main.pypip install pyinstaller
pyinstaller --onefile --noconsole --name 报账系统 --icon=../logo.ico main.py打包后的 exe 位于 dist/报账系统.exe。
本项目基于 MIT License 开源,详见 LICENSE 文件。
- 欢迎在 GitHub Issues 中提交反馈
- 邮箱:jtfing@Outlook.com
💡 如果这个项目对你有帮助,欢迎 ⭐ Star 支持!