Skip to main content

Import Wacai xlsx to Beancount

Project description

挖财数据导入 Beancount

本脚本实现了解析挖财导出文件并转换为 Beancount 账本的功能。基本保留了挖财导出文件的全部内容细节。

功能:

  • 一次性处理收入、支出、转账、借贷往来全部记录
  • 时间信息以 Transaction 的 metadata 形式保留(例如 time: "11:22:33"
  • 成员消费以 Posting 的 metadata 形式保留(例如 member: "阿猫"
  • 账本信息以 tags 的形式保留
  • 项目信息以 tags 的形式保留
  • 报销记录以 links 的形式保留(统一为 Reimburse),记录为与指定账户(account_reimburse 参数)的转账,同时保留原始消费类别(添加总额为 0 的 Posting)以便查询
  • 借贷往来统一记录到两个账户中(account_debtaccount_credit 参数),以 payee 区分外部账户或人员
  • 借贷往来中增加利息支出 Posting,记录到统一账户(expenses_interest 参数)中
  • 为无备注的借贷与转账自动添加备注

TODO:

  • 转换余额调整记录为 pad & balance 语句(暂无可用的数据来源)
  • 借款项支持非 CNY 的货币(挖财中无相关记录的货币信息)
  • 多人账本(目前没有参考文件格式)
  • 增加利息收入记录到统一账户的配置参数

已知的问题与说明:

  • 挖财中,跨在不同币种账户间转账(如:人民币还信用卡美元欠款)的记录不准确,目前统一以转出账户的货币为准。需要手动确认 Beancount 记录(已经打 ! Flag),比如一张双币信用卡的主货币是正的,而其他货币是负的。
  • 挖财中的项目一般为中文,而 Beancount 不支持中文 tag,目前已转换为拼音(如:公司 -> gong1-si1),如有修改需要请使用批量替换工具处理。
  • 挖财导出文件中不包含余额调整信息,导入后各账户的余额不准确需要手动对账一次;历史余额准确度取决于在挖财中是否事无巨细全部记录。

使用方式

安装

pip3 install beancount-wacai

配置

请参考 example.bean 中的内容,预先开一些常用账户。然后参考 example.import 配置 .import 文件:

from beancount_wacai import WacaiImporter

CONFIG = [
    WacaiImporter(
        {
            '招商卡': 'Assets:CN:CMB',
            '招商卡信用卡': 'Liabilities:CN:CMB',
             # ...
        },
        {
            '工资薪水': 'Income:Salary',
            '其他': 'Income:Other',
             # ...
        }, {
            '衣服鞋帽': 'Expenses:Shopping:Clothing',
            '软件服务': 'Expenses:Shopping:Software',
             # ...
        },
        account_debt='Liabilities:Payable',#债权
        account_credit='Assets:Receivables',#债务
        account_reimburse='Assets:Reimburse',#报销
        account_ufo='Equity:Opening-Balances',
    )
]
### 导出挖财

在挖财网页版中,导出各个账本(导出为收费功能,最便宜的档位是 50 元季度会员)。解压后获得 .xlsx文件。验证脚本是否能处理这些文件:

# 假设文件都位于相对目录 wacai_example_file 中
bean-identify example.import wacai_example_file

将输出:

**** wacai_example_file\wacai_日常账本_202101011200001_123.xlsx
Importer: wacai
Account: None

导入

如无问题,可继续执行 bean-extract

bean-extract example.import wacai_example_file\wacai_日常账本_202101011200001_123.xlsx > result.bean

#或
bean-extract example.import wacai_example_file > result.bean

执行过程中,会输出未识别的账户,例如:

Unknown accounts:
Assets:Unknown:北京银行卡
Assets:Unknown:招商信用卡-美元
Assets:Unknown:招商信用卡
Assets:Unknown:交行信用卡
Income:Unknown:利息
Expenses:Unknown:手机电话
Expenses:Unknown:数码产品
Expenses:Unknown:购物其他
Expenses:Unknown:对帐
Expenses:Unknown:代付款
Expenses:Unknown:求医买药
Expenses:Unknown:花鸟宠物

可据此手动在主账本中,使用 open 补齐这些账户,如有修改需要请使用批量替换工具处理。输出结果可参考 result.bean

最后在主账本中引入:

include "result.bean"

注意 在 Windows CMD 中,最终输出的文件可能是 GBK 编码,这将需要你手动转换文件编码。

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

beancount-wacai-0.1.2.tar.gz (7.0 kB view hashes)

Uploaded Source

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page