DevForge

PROJECT INFO

StageIdea
Prioritymedium
CreatedMar 22
UpdatedMar 24

ACTIVITY TREND

Commits per week (8 wk)

LINKS

GitHub RepositoryWebsiteDocs

About This Project

银行日记账生成器 — 自动解析招商银行 HTML 交易明细,智能分类,生成 Excel 日记账凭证,支持批量生成财务凭单。

README

银行日记账生成器

从招商银行网银交易明细自动生成 Excel 银行日记账,支持浏览器端和命令行两种使用方式。

功能特性

  • HTML 解析 — 自动解析招商银行网银导出的交易明细 HTML 表格
  • 智能分类 — 根据业务类型、摘要、对方名称自动归类(工资、外包费、税费、服务费、备用金等)
  • Excel 写入 — 在现有日记账 Excel 中追加当月数据,自动生成凭证号、余额公式、本月合计和本年累计
  • 凭单生成 — 可选上传凭单模板(支出单/收入单),批量生成财务凭单
  • 三步操作 — 输入数据 → 预览确认 → 生成下载,流程清晰
  • 双模式 — 浏览器端(单文件 HTML)和 Python 命令行均可使用

分类规则

条件分类说明
业务类型 = 企业银行收费服务费银行服务费
业务类型 = 自助代发付款工资工资发放
入账 + 摘要含"备用金"备用金总部拨付备用金
入账 + 摘要含"利息"利息利息收入
对方名称含"公积金"公积金公积金缴纳
摘要含"实时缴税" + 税单号626开头个人所得税个税扣缴
摘要含"实时缴税" + 税单号437开头保险按金额区分基本医疗保险/保险
业务类型 = 移动支付 + 公司名外包费外包服务费

如需添加新规则,修改源码顶部的配置区即可。

浏览器端使用

直接打开 journal_generator.html(或压缩版 journal_generator.min.html),按页面引导操作:

  1. 输入数据 — 粘贴招商银行网银复制的交易 HTML,上传日记账 Excel 文件,选择月份和工作表名称
  2. 预览确认 — 查看解析结果(总收入、总支出、条目数),确认分类是否正确
  3. 生成下载 — 下载写入后的日记账 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

01Apr 23Apr 28May 3May 8May 13May 18OpenedResolved

RELEASE

Latest: idea

Mar 24

LABELS

Idea

RESOURCES

GitHub
Docs (coming soon)

CONTRIBUTORS

1 contributor