先週書いた記事で書いた通り、Plain Text Accountingのために、howeyc/ledgerのimport機能がサポートしているフォーマットに変換するスクリプトをぼちぼち書き始めた。
howeyc/ledgerがサポートしているフォーマットはこういうの。
Transaction Date,Description,Amount
01/12/22,Dominoes Pizza HOUSTON TX,12.34
01/23/22,Dominoes Pizza PEARLAND TX,14.34
01/02/22,Half Price Books AUSTIN TX,5.24
各金融機関のWebサイトからエクスポートしたCSVファイルをこれに変換するためのスクリプトを書いた。
./import-ufj.py --description-map descriptions.csv /path/to/exported.csv > import.csvdescriptions.csvは、元データの「取引概要」みたいなのを、ledgerに入れたいDescriptionに変換するためのマッピング情報。
ledgerには↓のようにimportする。
ledger -f ledger.bat import UFJ import.csv >> ledger.batコマンドライン引数に Account
を設定しないといけないんだけど、元のledgerファイルにその
Account
がないと失敗するので、↓のように初期状態を入れておいた。
2026/04/01 Opening Balances
Assets:Bank:UFJ 50000.00
Equity:Opening Balances
importしたら全部 Equity:Opening Balances に紐づいてしまったので、まだなんか間違ってそうな気がしないでもないが、とりあえず最初の一歩ということで...
スクリプトは公開しても良いかな、って思ってたけど、自分が使っている金融機関がモロにバレるので、とりあえず非公開。
いろんな金融機関のCSVファイルのフォーマットが公開されてれば、片っ端から実装するだけで済むんだけど。
API連携といい、こういうところでオープンじゃないのが辛いねぇ...