Skip to content

huahaotech/salary_tool

Repository files navigation

工资报表生成工具

💰 工资报表生成工具

智能化工资管理解决方案

版本 Python 平台 许可证

高效 · 智能 · 专业


✨ 核心特性

🎨 飞书风格界面

  • 采用飞书设计风格,Python 语言实现,界面简洁清爽
  • 卡片式布局,层次分明
  • 流畅的交互动画体验

📊 多格式报表导出

  • 个税申报版式 (Excel)
  • 莱商银行代发版式 (TXT/GBK)
  • 济宁银行代发版式 (TXT/GBK) ⭐新增
  • 农业银行本行版 (CSV)
  • 农业银行跨行版 (CSV)

🤖 智能数据处理

  • Excel/CSV 批量导入
  • 智能粘贴识别员工信息
  • 重名员工自动检测与选择
  • 身份证/银行卡数据校验
  • 数据完整性校验
  • 员工增删记录与恢复 ⭐新增

⌨️ 高效操作体验

  • 全键盘快捷键支持
  • 鼠标滚轮滚动
  • 右键快捷菜单
  • 实时数据预览
  • 联行号模糊查询 ⭐新增

🚀 快速开始

系统要求

项目 要求
操作系统 Windows 7/10/11
Python 版本 3.8 或更高
内存 4GB 及以上
磁盘空间 100MB 可用空间

安装依赖

pip install pandas openpyxl ttkbootstrap

运行程序

python salary_tool_feishu.py

方式一:使用安装包(推荐)

下载 工资报表生成工具_v2.5_安装包.exe,双击运行:

  • 自动创建桌面快捷方式
  • 自动创建开始菜单快捷方式
  • 支持卸载功能
  • 首次运行自动创建数据文件

方式二:运行源代码

pip install pandas openpyxl ttkbootstrap
python salary_tool_feishu.py

方式三:打包为可执行文件

python create_installer.py

📖 功能详解

1️⃣ 报表生成

选择企业(从企业管理中配置),输入工资数据,一键生成多种格式报表。

工资数据录入方式:

方式一:手动输入

张三 5000
李四 6000
王五 7000

方式二:Excel 粘贴 直接从 Excel 复制姓名和工资两列,粘贴到输入框

方式三:文件导入 支持导入 Excel 或 CSV 格式的工资数据文件

2️⃣ 生成记录

查看历史报表生成记录,包括:

  • 生成时间
  • 公司名称
  • 发薪月份
  • 人数和总金额
  • 导出文件位置

3️⃣ 员工花名册管理

功能 描述
➕ 添加员工 手动录入员工详细信息
📋 智能粘贴 自动识别文本中的员工信息
📥 批量导入 支持 Excel/CSV 文件导入
📤 导出备份 一键导出花名册备份
🔍 实时搜索 快速定位员工信息
🗑️ 删除恢复 删除员工可恢复

员工信息字段:

  • 姓名(必填)
  • 身份证号码
  • 手机号码
  • 银行卡号(必填)
  • 联行号(12位)
  • 开户行全称(必填)

4️⃣ 增删记录 ⭐新增

添加记录

  • 显示所有添加的员工记录
  • 记录添加时间和方式(手动/导入/粘贴)

删除记录

  • 显示已删除的员工信息
  • 支持一键恢复到花名册
  • 保留完整删除历史

5️⃣ 数据校验

自动校验员工花名册数据:

  • ✅ 身份证号码格式校验(18位、校验码验证)
  • ✅ 银行卡号格式校验(Luhn算法)
  • ✅ 身份证重复检测
  • ✅ 手机号格式校验
  • ✅ 联行号格式校验
  • ✅ 必填项检查

6️⃣ 企业管理 ⭐增强

为每个企业配置需要生成的报表类型:

  • 个税版式
  • 莱商银行版式
  • 济宁银行版式 ⭐新增
  • 农行本行版式
  • 农行跨行版式

生成报表时自动根据企业配置过滤不需要的报表。

7️⃣ 联行号查询 ⭐新增

  • 支持模糊查询(如"济宁银行 汶上")
  • 显示联行号、银行名称、省份、地区
  • 一键复制联行号
  • 右键菜单复制银行名称或整行信息

8️⃣ 个税计算器

功能一:计算个税(正向计算)

  • 输入税前工资,自动计算应缴个税
  • 支持设置起征点、社保公积金扣除、专项附加扣除
  • 使用2024年最新个税税率表

功能二:反算个税(逆向计算)

  • 输入税后工资(实际到手金额)
  • 自动反推税前工资和应缴个税
  • 例如:税后6000元 → 税前6033.33元,个税33.33元

9️⃣ 备份恢复 ⭐新增

  • 一键备份:备份数据库到指定位置
  • 数据恢复:从备份文件恢复数据
  • 备份内容包括:员工花名册、历史记录、个税数据、企业配置等

📋 报表格式说明

📄 个税版式 (Excel)

用于个人所得税申报

姓名 身份证号码 手机号 工资总额
张三 370830... 138... 5000

🏦 莱商银行版式 (TXT, GBK编码)

用于莱商银行代发工资系统

3|15000.00
收款人账号|收款人名称|收款银行|收款账户开户行行号|行内行外|转账金额|是否加急|转账附言
6214...|张三|中国农业银行...|1034...|01|5000.00|0|工资

🏦 济宁银行版式 (TXT, GBK编码) ⭐新增

用于济宁银行代发工资系统(格式同莱商银行)

💳 农业银行本行版 (CSV)

农业银行卡对本行转账

编号 收款方账号 收款方户名 金额 备注
1 6217... 张三 5000 工资

💸 农业银行跨行版 (CSV)

农业银行卡对他行转账

编号 收款方账号 收款方户名 开户银行 开户行大额行号 开户行支行名称 金额 用途
1 6217... 张三 中国工商银行 102... 中国工商银行... 5000 工资

⌨️ 快捷键指南

快捷键 功能 快捷键 功能
Ctrl + N 添加新员工 Ctrl + E 编辑选中员工
Ctrl + D 删除选中员工 Ctrl + R 刷新列表
Ctrl + G 生成报表 Ctrl + P 预览数据
F5 数据校验 Delete 删除选中项
F1 使用说明 Esc 关闭对话框

🏗️ 项目结构

工资工具_v2.5/
├── 📄 salary_tool_feishu.py           # 主程序源码
├── 📄 create_installer.py             # 打包脚本
├── 📄 setup.iss                       # Inno Setup 脚本
├── 📄 ChineseSimplified.isl           # 中文语言文件
├── 📄 requirements.txt                # 依赖列表
├── 📄 README.md                       # 说明文档
├── 📄 打包说明.md                      # 打包详细说明
├── 🖼️  icon.png / icon.ico            # 程序图标
├── 📊 salary_tool.db                  # SQLite数据库 ⭐新增
├── 📊 net_bank_code.csv               # 联行号数据 ⭐新增
├── 📁 dist/                           # EXE 输出目录
│   └── 工资报表生成工具.exe
├── 📁 installer/                      # 安装包输出目录
│   └── 工资报表生成工具_v2.3_安装包.exe
└── 📁 导出报表/                       # 报表导出目录
    └── 公司名称-发薪月份-日期/
        ├── 个税版式.xlsx
        ├── 莱商银行版式.txt
        ├── 济宁银行版式.txt          # ⭐新增
        └── 农业银行版式.csv

⚙️ 技术架构

┌─────────────────────────────────────────┐
│           用户界面层 (UI Layer)          │
│  ┌─────────┐ ┌─────────┐ ┌──────────┐ │
│  │Tkinter  │ │ttkboot- │ │  Custom  │ │
│  │ Widgets │ │strap    │ │  Styles  │ │
│  └─────────┘ └─────────┘ └──────────┘ │
├─────────────────────────────────────────┤
│           业务逻辑层 (Logic Layer)       │
│  ┌─────────┐ ┌─────────┐ ┌──────────┐ │
│  │  Data   │ │  Parse  │ │ Generate │ │
│  │  Parse  │ │ Salary  │ │  Report  │ │
│  └─────────┘ └─────────┘ └──────────┘ │
├─────────────────────────────────────────┤
│           数据访问层 (Data Layer)        │
│  ┌─────────┐ ┌─────────┐ ┌──────────┐ │
│  │ SQLite  │ │  CSV    │ │  Excel   │ │
│  │   DB    │ │  I/O    │ │  I/O     │ │
│  └─────────┘ └─────────┘ └──────────┘ │
└─────────────────────────────────────────┘

🛡️ 安全与合规

  • ✅ 数据本地存储(SQLite数据库),不上传云端
  • ✅ 敏感信息脱敏显示
  • ✅ 自动备份机制
  • ✅ 符合银行数据格式规范
  • ✅ 增删记录可追溯

📦 安装与卸载

安装

  1. 下载 工资报表生成工具_v2.5_安装包.exe
  2. 双击运行安装程序
  3. 选择安装目录(默认:Program Files)
  4. 可选创建桌面快捷方式
  5. 完成安装

卸载

  1. 打开 Windows 设置 → 应用 → 应用和功能
  2. 找到 "工资报表生成工具"
  3. 点击卸载
  4. 卸载程序会保留导出报表目录中的数据

注意事项

  • 首次运行时,Windows 11 可能会显示"智能应用控制"警告,点击"更多信息"→"仍要运行"即可
  • 或者在 Windows 安全中心关闭"智能应用控制"功能

📝 更新日志

v2.5 (2026-03-27)

  • 🐛 Bug修复:修复数据库删除员工时未记录到删除记录表的问题
  • 🐛 Bug修复:修复异常处理问题,添加具体的异常类型捕获
  • 🐛 Bug修复:修复数据校验问题,使用Validator类进行完整校验
  • 🐛 Bug修复:修复add_history方法中output_dir参数处理问题
  • 🐛 Bug修复:修复import_employees_from_df方法的错误处理
  • 🐛 Bug修复:修复generate_agricultural_version方法未使用参数的问题
  • 🔧 优化代码结构和错误处理机制

v2.3 (2026-03-13)

  • 🏦 农业银行版式升级:合并本行/跨行版式为批量转账版式
  • 📝 批量转账模板:采用银行标准格式(编号,账号,户名,是否农行,行别,联行号,支行名称,金额,用途)
  • 🔄 兼容旧版本:自动将 v2.2 的农行配置迁移到新版本
  • 🔧 所有银行版式统一使用 GBK 编码,避免中文乱码
  • 🔧 修复生成记录显示问题

v2.2 (2026-03-12)

  • 🎉 全新SQLite数据库架构,数据更安全稳定
  • 🏦 新增济宁银行版式报表导出
  • 📋 增删记录功能,支持删除员工恢复
  • 🔍 联行号查询功能,支持模糊搜索、一键复制
  • 🏢 企业管理功能,为每个企业配置报表类型
  • 💾 备份恢复功能,一键备份和恢复数据
  • 📝 生成记录功能,查看历史生成记录,支持单条/批量删除
  • 🗑️ 批量删除员工,支持多选删除
  • 📊 数据预览增强,分离显示正常/异常数据
  • 🔧 修复删除员工时同名员工都被删除的bug
  • 🔧 修复员工编辑后数据不更新的问题
  • 🔧 修复生成记录总金额显示不正确的问题
  • 🔧 优化银行卡识别,根据联行号识别银行
  • 🔧 优化界面布局和交互体验

v2.1 (2026-03-11)

  • 🎨 飞书风格全新 UI 界面(Python + ttkbootstrap 实现)
  • 💰 新增个税计算器(正向计算/反算)
  • 🔍 新增数据校验工具(身份证/银行卡校验)
  • 📂 报表导出到指定目录,自动打开文件夹
  • 🔢 新增个税版式工资表导出
  • 📊 优化表格显示,增加行高和字体
  • 📦 新增安装包,支持自动创建快捷方式
  • 🐛 修复已知问题

v2.0 (2026-03-11)

  • 🎨 全新现代化 UI 界面
  • 🤖 智能重名检测与选择
  • 📋 智能粘贴员工信息
  • 📜 历史记录功能
  • ⌨️ 快捷键支持
  • 🖱️ 鼠标滚轮滚动支持

🤝 支持与反馈

如有问题或建议,欢迎联系开发团队

📧 Email: support@jinghong.me 🌐 Website: https://www.jinghong.me


Made with ❤️ by 惊鸿科技(济宁)有限公司

Copyright © 2026 惊鸿科技(济宁)有限公司. All Rights Reserved.

About

财务工具-根据工资表生成个税和银行工资申报表

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors