微信账单分析工具 - 基于 Electron 的可视化账单分析应用
基于 Electron 框架开发的微信支付账单可视化分析应用,帮助您更好地了解个人消费习惯和财务状况。
打开微信账单页面
我 → 服务 → 钱包 → 账单选择下载账单
... 或 常见问题下载账单设置账单参数
用于个人对账(重要!)身份验证
接收账单文件
服务通知 发送导出的 Excel 文件包含以下字段:
⚠️ 重要提示:
npm install
npm start
# Windows 平台
npm run build:win
# macOS 平台
npm run build:mac
# Linux 平台
npm run build:linux
# 所有平台
npm run build
启动应用
导入账单文件
选择账单文件 按钮查看分析结果
导出分析报告
导出报告 按钮wechatPay/
├── main.js # Electron 主进程
├── index.html # 应用主界面
├── styles.css # 样式文件
├── renderer.js # 渲染进程逻辑
├── package.json # 项目配置
├── README.md # 使用文档
└── sample/ # 脱敏演示数据
├── demo-bill.xlsx # 完全虚构的示例账单(用于演示与测试)
└── README.md # 样例数据说明
隐私提示:本仓库不包含任何真实账单。请始终在仓库之外的目录打开你自己的微信账单, 切勿将含个人信息的
*.xlsx/*.xls/*.csv提交到版本库。
// 解析微信账单 Excel 文件
ipcMain.handle('parse-bill-file', async (event, filePath) => {
// 读取 Excel 文件
// 识别表头位置
// 提取账单数据
// 解析元数据
// 返回结构化数据
});
// 概览分析
function analyzeOverview(data) {
// 计算总收入、总支出
// 统计交易笔数
// 确定时间范围
}
// 维度分析
function analyzeByDimension(data, dimension) {
// 按指定维度分组
// 统计金额和次数
// 区分收入和支出
}
// 趋势分析
function analyzeTrend(data, granularity) {
// 按时间粒度分组
// 计算每个时间段的收支
// 生成趋势数据
}
// 使用 Chart.js 渲染各类图表
- 柱状图:收支对比
- 饼图/环形图:分类占比
- 折线图:趋势变化
为避免把真实账单或个人信息误提交到版本库,本项目内置两道防线:
.gitignore 默认忽略账单文件:根目录及子目录下的 *.xlsx / *.xls / *.csv 一律被忽略,
仅放行 sample/ 下的脱敏样例;本地数据目录(data/、userData/)与导出报告也已忽略。scripts/precommit-secret-scan.sh:拦截 sample/ 之外的账单文件,
以及包含微信账单表头、手机号、身份证号等特征的暂存内容。启用钩子(任选其一):
# 方式一:软链为本地 pre-commit 钩子
ln -sf ../../scripts/precommit-secret-scan.sh .git/hooks/pre-commit
# 方式二:使用项目内钩子目录
git config core.hooksPath scripts/githooks
cp scripts/precommit-secret-scan.sh scripts/githooks/pre-commit
确需提交被误判的内容时,可临时 SKIP_BILL_SCAN=1 git commit ... 跳过(请谨慎)。
A: 请确保:
A: 请检查:
A: 当前版本每次只能分析一个文件,如需分析多个时间段的数据,建议先在 Excel 中合并后再导入。
A: 导出时会弹出保存对话框,您可以选择保存位置。
MIT License
本项目为开源项目,欢迎贡献代码和提出建议。
暂无开放 Issues,或尚未同步最近议题。