PROJECT INFO
StageIdea
Prioritymedium
CreatedMar 22
UpdatedMar 24
ACTIVITY TREND
Commits per week (8 wk)
About This Project
银行日记账生成器 — 自动解析招商银行 HTML 交易明细,智能分类,生成 Excel 日记账凭证,支持批量生成财务凭单。
README
银行日记账生成器
从招商银行网银交易明细自动生成 Excel 银行日记账,支持浏览器端和命令行两种使用方式。
功能特性
- HTML 解析 — 自动解析招商银行网银导出的交易明细 HTML 表格
- 智能分类 — 根据业务类型、摘要、对方名称自动归类(工资、外包费、税费、服务费、备用金等)
- Excel 写入 — 在现有日记账 Excel 中追加当月数据,自动生成凭证号、余额公式、本月合计和本年累计
- 凭单生成 — 可选上传凭单模板(支出单/收入单),批量生成财务凭单
- 三步操作 — 输入数据 → 预览确认 → 生成下载,流程清晰
- 双模式 — 浏览器端(单文件 HTML)和 Python 命令行均可使用
分类规则
| 条件 | 分类 | 说明 |
|---|---|---|
| 业务类型 = 企业银行收费 | 服务费 | 银行服务费 |
| 业务类型 = 自助代发付款 | 工资 | 工资发放 |
| 入账 + 摘要含"备用金" | 备用金 | 总部拨付备用金 |
| 入账 + 摘要含"利息" | 利息 | 利息收入 |
| 对方名称含"公积金" | 公积金 | 公积金缴纳 |
| 摘要含"实时缴税" + 税单号626开头 | 个人所得税 | 个税扣缴 |
| 摘要含"实时缴税" + 税单号437开头 | 保险 | 按金额区分基本医疗保险/保险 |
| 业务类型 = 移动支付 + 公司名 | 外包费 | 外包服务费 |
如需添加新规则,修改源码顶部的配置区即可。
浏览器端使用
直接打开 journal_generator.html(或压缩版 journal_generator.min.html),按页面引导操作:
- 输入数据 — 粘贴招商银行网银复制的交易 HTML,上传日记账 Excel 文件,选择月份和工作表名称
- 预览确认 — 查看解析结果(总收入、总支出、条目数),确认分类是否正确
- 生成下载 — 下载写入后的日记账 Excel,可选生成凭单
命令行使用(Python)
依赖安装
pip install beautifulsoup4 openpyxl
运行
# 从 HTML 文件读取
python3 journal_generator.py --html bank.html --excel 日记账.xlsx --month 2
# 从剪贴板读取(macOS)
python3 journal_generator.py --clipboard --excel 日记账.xlsx --month 2
# 仅预览不写入
python3 journal_generator.py --html bank.html --excel 日记账.xlsx --month 2 --dry-run
参数说明
| 参数 | 说明 |
|---|---|
--html FILE | 银行交易 HTML 文件路径 |
--clipboard | 从剪贴板读取 HTML(macOS,与 --html 二选一) |
--excel FILE | 日记账 Excel 文件路径(必填) |
--month N | 月份 1-12(必填) |
--sheet NAME | 工作表名称(默认:银行日记账2025) |
--dry-run | 仅预览,不写入 Excel |
构建压缩版
npm install
node build_minified.js
会生成 journal_generator.min.html,对 CSS 压缩、JS 混淆后合并为单文件,便于分发。
项目结构
journal_generator.html # 浏览器端主文件(招商银行风格 UI)
journal_generator.min.html # 压缩混淆版(分发用)
journal_generator.py # Python 命令行版本
build_minified.js # 构建脚本(CSS 压缩 + JS 混淆)
财务单据-支出单 收入单-直接使用打印版.xlsx # 凭单模板
wechat_qr.jpg # 微信联系二维码
技术栈
- 前端: 纯 HTML/CSS/JS + ExcelJS(CDN)
- 后端: Python 3 + BeautifulSoup4 + openpyxl
- 构建: clean-css + javascript-obfuscator + terser
联系方式
- Kris — tel: 176-8568-8606
- 微信扫码联系(见
wechat_qr.jpg)
Leave Feedback
STATS
Commits1
Open Issues0
Progress0%
ACTIVITY
RELEASE
Latest: idea
Mar 24
LABELS
Idea
CONTRIBUTORS
1 contributor