English Flag Polish Flag WYBIERZ JĘZYK/CHOOSE YOUR LANGUAGE -->

Konweter CSV2QIF

Mały projekt na zamówienie jednego ze starych znajomych: szybki konwerter formatu CSV na format rozumiany przez Gnucash. Dostałem dwie próbki plików CSV wygenerowanych z systemu transakcyjnego dwóch banków: mBank i Inteligo. Po zapoznaniu się w locie z formatem QIF, który zdaje się być jednyną możliwością zaimportowania do Gnucash, pozostało napisanie na szybko konwertera z użyciem niezawodnego awk, grep i sed.

Podczas prac nad konwerterem mBank okazało się:

  • użyteczne sa dane samych transakcji - linie zaczynające się od daty i takie należy obecnie podać
  • wartości rozdzielone sa średnikiem, ale średnik może pojawić się także w opisie transakcji
  • format daty nie pasował Gnucash - chociaż może to fałszywy alarm...
  • mnówstwo białych spacji - do usunięcia

Kod dla systemu mBanku (alpha):

cat mbank.csv | sort | tr -s [" "] [" *"]| sed -e s'/\(\".*\);\(.*\"\)/\1.\2/g' | awk -f mbank2qif.awk | sed -e "s/D\([0-9][0-9][0-9][0-9]\)-\([0-9][0-9]\)-\([0-9][0-9]\)/D\1.\2.\3/g" -e 's/T\(.*\),\([0-9][[0-9]\)/T\1.\2/g' -e 's/\(.*\) \(.*\).\([0-9][0-9]\)/\1\2.\3/'g > test.qif

Dodatkowo należy w roboczym katalogu umieścić plik mbank2qif.awk. Niedługo powinna pojawić się czysta wersja - jak narazie działa. Wkrótce pojawi się także wersja dla Inteligo.
Miłego testowania!

Kontakt via email...


CVS2QIF converter

This is very small project for my old pal: a quick CVS to Gnucash aware format. I got two samples of CSV generated transactions comming from mBank & Inteligo. After quick hacking of the QIF format specs, which seems to be the only one method of importing data into Gnucash, all that was left was hiring awk, grep & sed to do the dirty job:

While working on the mBank converter:

  • only useful data is starting with date of transaction - thats the only data you need currently to input into converter
  • altough the data fields are separated with ; - you can still find it in transaction details
  • the date format was bugging Gnucash, but maybe that was just a false alarm...
  • there's a lot of multiple white spaces to be removed

Code for mBank (alpha):

cat mbank.csv | sort | tr -s [" "] [" *"]| sed -e s'/\(\".*\);\(.*\"\)/\1.\2/g' | awk -f mbank2qif.awk | sed -e "s/D\([0-9][0-9][0-9][0-9]\)-\([0-9][0-9]\)-\([0-9][0-9]\)/D\1.\2.\3/g" -e 's/T\(.*\),\([0-9][[0-9]\)/T\1.\2/g' -e 's/\(.*\) \(.*\).\([0-9][0-9]\)/\1\2.\3/'g > test.qif

Along with the code you need the AWK script file in the working folder mbank2qif.awk. I'll try to release a more robust, clean version, as well as Inteligo version.
Happy testing!

Contact via email...

Valid HTML 4.0 Transitional