无需会员导出挖财记账数据
前段时间挖财记账改版,只有会员才能导出数据,而且一个月就要18元(2020/03/19开通时),促使我彻底放弃挖财转向 Bluecoins 才不是因为穷。由于当时急着导出数据,还是开了一个月的会员,然而为了不让它再赚其他人的最后一笔钱,寻找了一下它的数据存储方式,可以手动导出数据,不用再花钱了。
以下内容仅适用于取得 root 权限的 Android 手机
TL; DR
找到 /data/data/com.wacai365/databases/wacai365.so
,导出到电脑后使用 SQLite 软件查看里面的数据即可。明细存储在 TBL_TRADEINFO
表中,对应的账户在 TBL_ACCOUNTINFO
表,时间信息是 UNIX 时间戳,分类信息在 TBL_INCOMEMAINTYPEINFO
,TBL_OUTGOSUBTYPEINFO
,TBL_OUTGOMAINTYPEINFO
三个表里,根据 UUID 关联一下即可全部导出。
数据库查看
我使用的是 DB Browser for SQLite 软件查看导出的数据库,此软件开源、免费,而且有良好的界面和完整的功能,十分优秀。
打开数据库文件后,可以发现里面共有47个表,然而我需要的只有上面提到的5个表。首先进入 TBL_TRADEINFO 观察一下,很容易发现每列分别是什么。之后分别去其他表观察一下,即可很容易地导出数据了。
数据导出
根据观察到的结果,我们可以将多个表结合,之后输出为 csv 文件,即可自由导入到其它记账软件中。由于不同类型的数据需要关联的表也不一样,因此分为支出、收入、转账三类处理。
下面只导出了时间、金额、帐户、支出大类、支出(收入)小类、备注、账本名称这几部分数据,如需其他数据(如项目、商家等)自行添加联系的表导出即可,原理一样,不再赘述。
支出部分
1 | SELECT DISTINCT datetime(t.date, 'unixepoch', 'localtime') 时间, t.money*1.0/100 金额, a.name 帐户, o.name 支出大类, os.name 支出小类, t.comment 备注, b.name 账本名称 |
结果如图所示,执行后选择保存结果视图,导出为 csv 即可。
收入部分
1 | SELECT DISTINCT datetime(t.date, 'unixepoch', 'localtime') 时间, t.money*1.0/100 金额, a.name 帐户, i.name 收入大类, t.comment 备注, b.name 账本名称 |
选择保存结果视图,导出为 csv 即可。
转账部分
1 | SELECT DISTINCT datetime(t.date, 'unixepoch', 'localtime') 时间, t.money*1.0/100 金额, a.name 转出帐户, a2.name 转入账户, t.comment 备注, b.name 账本名称 |
导出的 csv 文件就可以自行处理,导入别的记账软件了,祝使用顺利。