hledger/CSV.md

47 lines
1.3 KiB
Markdown

---
title: hledger How to read CSV files
---
# How to read CSV files
Here's a quick example of [converting a CSV file](MANUAL.html#csv-files).
Say we have downloaded `checking.csv` from a bank for the first time:
"Date","Note","Amount"
"2012/3/22","DEPOSIT","50.00"
"2012/3/23","TRANSFER TO SAVINGS","-10.00"
We could create `checking.csv.rules` containing:
account1 assets:bank:checking
skip 1
fields date, description, amount
currency $
if ~ SAVINGS
account2 assets:bank:savings
This says:
"always use assets:bank:checking as the first account;
ignore the first line;
use the first, second and third CSV fields as the entry date, description and amount respectively;
always prepend $ to the amount value;
if the CSV record contains 'SAVINGS', use assets:bank:savings as the second account".
[CSV files](MANUAL.html#csv-files) in the manual describes the syntax.
Now hledger can read this CSV file:
$ hledger -f checking.csv print
using conversion rules file checking.csv.rules
2012/03/22 DEPOSIT
income:unknown $-50.00
assets:bank:checking $50.00
2012/03/23 TRANSFER TO SAVINGS
assets:bank:savings $10.00
assets:bank:checking $-10.00
We might save this output as `checking.journal`, and/or merge it (manually) into the main journal file.