Nieuws:

Welkom, Gast. Alsjeblieft inloggen of registreren.
Heb je de activerings-mail niet ontvangen?

Auteur Topic: Rabobank CSV conversietooltje voor HomeBank  (gelezen 21076 keer)

DFreeze

  • Gast
Rabobank CSV conversietooltje voor HomeBank
« Gepost op: 2008/06/05, 20:34:50 »
dag allen

Ik heb me eens met de handleiding in de hand verdiept in bash en awk, en heb een klein tooltje gemaakt om de CSV gegevens die van Rabobank Internetbankieren te downloaden zijn, om te zetten in een CSV formaat dat HomeBank begrijpt. Het is maar een simpel scriptje, en er zijn vast verbeteringen mogelijk maar voor wie er wat aan heeft: hier is het.

Als er handigere manieren zijn om mijn bankoverschrijvingen te importeren in HomeBank, dan hoor ik het graag. En als je het script wilt uitbreiden / verbeteren dan welkom! Ik weet bijvoorbeeld niet zeker of ik alle velden van de Rabo CSV goed heb benut in het HomeBank formaat. Duik er maar eens in als je het leuk vindt!

Maak een nieuw tekstbestand (Toepassingen >> Hulpmiddelen >> Teksteditor) en plak de onderstaande code in het het venster. Sla het op als HomeBank.sh. Gebruik nu de terminal (Toepassingen >> Hulpmiddelen >> Terminalvenster) en ga naar de map waar je het bestand hebt opgeslagen (b.v. cd Bureaublad). Maak het bestand executable (sudo chmod +x HomeBank.sh) en gebruik de volgende opdracht om de conversie te doen.

jij@jouwcomputer:~$ sh HomeBank.sh rabo.csv homebank.csv

Waarbij je de goede namen moet invullen voor het Rabobank CSV filetje (mut.csv) en een naam voor de outputfile.

#!/bin/bash

# a small script to format Rabobank .csv accountinfo to a .csv
# format HomeBank understands

# format Rabobank .csv:
# from account, valuta, date (ISO), Debet or Credit, amount, to account, description, interest date, type of payment (transfer, authorization, ...), ..., additional info, additional info, additional info, additional info,additional info,additional info

# format HomeBank:
# date;mode;info;payee;description;amount;category

# date         => format should be DD-MM-YY
# mode         => from 0=none to 5=personal transfert
# info         => a string
# payee        => a payee name
# description  => a string
# amount       => a number with a '.' as decimal seperator, ex: -24.12 or 36.75
# category     => a category name

if [ ! -e ./$1 ]; then
  printf "\ninputfile bestaat niet - controleer de naam \n\n"
  exit 1
fi
 
if [ -e ./$2 ]; then
  printf "\noutputfile bestaat al - overschrijven? [j/N]"
fi

read choice

case "$choice" in

"j" | "J" | "y" | "Y" )
  awk 'BEGIN { FS="," }
    {
    gsub ("\""," ")
    sign   = ""
    mode   = 0
    year   = substr($3,3,2)
    month  = substr($3,5,2)
    day    = substr($3,7,2)
    HBdate = day"-"month"-"year
    if ($4 ~ /"D"/)  sign = "-"
    print HBdate ";"";" $7 ";"";" $11 $12 $13 ";" sign $5 ";"";"
    }' $1 > $2
  ;;

* )
  printf "\nkies een andere outputnaam\n\n"
  exit 1
  ;;

esac
printf "\naantal transacties verwerkt: `wc -l < $1` \n\n"

Rabobank CSV conversietooltje voor HomeBank
« Reactie #1 Gepost op: 2008/06/05, 21:51:20 »
Dfreeze, ik heb de Postbank en de gegevens die ik download zijn ook in CSV, ik open deze met openoffice.Calc. Ik heb totaal geen verstand van programmeren, wat is het voordeel om het met een scriptje te doen of kijk ik ergens over heen?
Gewoon een vraag uit belangstelling.

Met vriendelijke groet,

Gijs
In der Beschränkung zeigt sich der Meister.

DFreeze

  • Gast
Rabobank CSV conversietooltje voor HomeBank
« Reactie #2 Gepost op: 2008/06/05, 22:42:20 »
Citaat van: Gijsbert
Dfreeze, ik heb de Postbank en de gegevens die ik download zijn ook in CSV, ik open deze met openoffice.Calc. Ik heb totaal geen verstand van programmeren, wat is het voordeel om het met een scriptje te doen of kijk ik ergens over heen?
Gewoon een vraag uit belangstelling.

Met vriendelijke groet,

Gijs
Goeie vraag. Ik was ook van plan om het met Calc te doen. Gewoon wat kolommen verschuiven en klaar. Maar De datum moest nog van ISO (b.v. 20080101) formaat naar dd-mm-jj, en daarvoor kon ik geen functie vinden in Calc. Ik heb zelf een macro geschreven in het OOo Basic taaltje waarmee ik de conversie kon doen. Maar ik moest nog wel met de hand de kolommen heen en weer schuiven, Dus ik wilde de macro uitbreiden door die verschuivingen te 'Recorden' in een andere macro. Gewoon om zelf eens iets te 'programmeren'. Nu ik het in bash doe, hoef ik geen OOo te openen, zie ik geen kolommen voorbij flitsen en is het in een tel klaar. Maar de belangrijkste reden is: ik wilde gewoon eens een werkend programmaatje schrijven waar ik (en misschien anderen) ook nog wat aan heb.

Dus misschien niet de tool-van-de-eeuw, maar een aardigheidje voor mezelf... ;-)

Rabobank CSV conversietooltje voor HomeBank
« Reactie #3 Gepost op: 2008/06/06, 15:45:53 »
Ik zal het ook eens uitproberen, vanavond want nu zit ik op een andere pc zonder Ubuntu.

Met vriendelijke groet,

Gijs
In der Beschränkung zeigt sich der Meister.

DFreeze

  • Gast
Rabobank CSV conversietooltje voor HomeBank
« Reactie #4 Gepost op: 2008/06/06, 17:05:42 »
Ik weet niet of de indeling van de Postbank overeenkomt met die van de Rabobank. Het zou kunnen zijn dat de dingen net op een andere plek zitten in de tabel. Maar je kunt het proberen - en als je het aandurft de plaats van de kolommen aanpassen voor de Postbank (de $ tekentjes in de regel met "print HBdate ..." ;-)

Succes! Laat je even weten of het werkt?

klap_in

  • Gast
Rabobank CSV conversietooltje voor HomeBank
« Reactie #5 Gepost op: 2008/07/15, 23:18:36 »
DFreeze, ik heb jouw converteerscript net uitgeprobeert en heb naar mijn weten het scriptje correct aangemaakt en het heeft volgens mij de juiste rechten. Echter het blijft staan met knipperende cursor.
Werkt het op dit moment nog wel bij jou?

Van de rabo-site heb ik het csv-bestand gedownload.
De controles op bestaande resp. dubbele bestanden doen het wel.

Rabobank CSV conversietooltje voor HomeBank
« Reactie #6 Gepost op: 2008/07/17, 18:16:18 »
DFreeze, ik heb het gisteren avond geprobeerd, de namen van de velden wijken af van de Postbank. Bij de Postbank is de datum al correct weergegeven dus hier hoeft niks verandert te worden. Je script aangepast zou makkelijk zijn als je perse waarden wilt veranderen, kan natuurlijk ook in OOo, maar het is wel leuk om het met een scriptje te doen. In ieder geval succes met eventuele nieuwe scripts.

Met vriendelijke groet,

Gijs
In der Beschränkung zeigt sich der Meister.

Rabobank CSV conversietooltje voor HomeBank
« Reactie #7 Gepost op: 2008/07/17, 22:20:05 »
DFreeze,

Ik heb geprobeerd een CSV bestand te downloaden van de Rabobank.....
Maar ik krijg alleen maar TXT of anderssoortige bestandjes.
Die TXT is kommagescheiden.
Een andere mogelijkheid is de standaard van Rabo zelf (is geen CSV!).

Wat voor bestand bedoel je? Toch gewoon je rekening-overzichten?

Offline apie1

  • Lid
Rabobank CSV conversietooltje voor HomeBank
« Reactie #8 Gepost op: 2008/08/13, 10:21:06 »
Als die TXT kommagescheiden is, is het in feite een CSV, dus dat zou gewoon moeten werken :)

Ik heb het scriptje van DFreeze even aangepast zodat het met de bestanden van de Postbank overweg kan (kommagescheiden dd-mm-jjjj)
#!/bin/bash

# a small script to format postbank .csv accountinfo to a .csv format HomeBank understands

# Originally made for rabobank files by DFreeze:
# http://forum.ubuntu-nl.org/software-en-configuratie/rabobank-csv-conversietooltje-voor-homebank/
# adapted for Postbank bij apie1

# format Postbank (comma separated dd-mm-yyyy):
# "Datum","Naam / Omschrijving","Rekening","Tegenrekening","Code","Af Bij","Bedrag (EUR)","MutatieSoort","Mededelingen"

# format HomeBank:
# date;mode;info;payee;description;amount;category

# date         => format should be DD-MM-YY
# mode         => from 0=none to 5=personal transfert
# info         => a string
# payee        => a payee name
# description  => a string
# amount       => a number with a '.' as decimal seperator, ex: -24.12 or 36.75
# category     => a category name

if [ ! -e ./$1 ]; then
  printf "\ninputfile bestaat niet - controleer de naam \n\n"
  exit 1
fi
choice=Y
if [ -e ./$2 ]; then
  printf "\noutputfile bestaat al - overschrijven? [j/N]"
  read choice
fi

case "$choice" in

"j" | "J" | "y" | "Y" | "1" )
  awk 'BEGIN { FS="," }
    {
    gsub ("\"","")
    sub ("^.","",$10)
    sub (".$","",$10)
    sign   = ""
    mode   = 0
    year   = substr($1,9,2)
    month  = substr($1,4,2)
    day    = substr($1,1,2)
    HBdate = day"-"month"-"year
    if ($6 ~ "Af")  sign = "-"
    print HBdate";"";"$9";"$2";"$2" - " $10 ";" sign $7"."$8";"
   
    }' $1 > $2
  ;;
# datum;;mutatiesoort;naam;naam - mededelingen;bedrag;;
* )
  printf "\nkies een andere outputnaam\n\n"
  exit 1
  ;;
esac
cat $2 | grep -v '^Da-um' > $2
printf "\naantal transacties verwerkt: `wc -l < $2` \n\n"

« Laatst bewerkt op: 2009/07/06, 13:22:55 door apie1 »

Offline wdenhaan

  • Lid
Rabobank CSV conversietooltje voor HomeBank
« Reactie #9 Gepost op: 2008/09/17, 19:45:49 »
Het scriptje was nog niet helemaal goed. Er werd altijd gewacht op een input van "J". Verder werd het minnetje niet goed geplaatst wanneer het een Debet-transactie betrof. Zoals ie hieronder staat werkt ie bij mij (Rabobank)

#!/bin/bash

# a small script to format Rabobank .csv accountinfo to a .csv
# format HomeBank understands

# format Rabobank .csv:
# from account, valuta, date (ISO), Debet or Credit, amount, to account, description, interest date, type of payment (transfer, authorization, ...), ..., additional info, additional info, additional info, additional info,additional info,additional info

# format HomeBank:
# date;mode;info;payee;description;amount;category

# date         => format should be DD-MM-YY
# mode         => from 0=none to 5=personal transfert
# info         => a string
# payee        => a payee name
# description  => a string
# amount       => a number with a '.' as decimal seperator, ex: -24.12 or 36.75
# category     => a category name

if [ ! -e ./$1 ]; then
  printf "\ninputfile bestaat niet - controleer de naam \n\n"
  exit 1
fi

choice=Y
if [ -e ./$2 ]; then
  printf "\noutputfile bestaat al - overschrijven? [j/N]"
  read choice
fi

case "$choice" in

"j" | "J" | "y" | "Y" )

  awk 'BEGIN { FS="," }
    {
    gsub ("\""," ")
    sign   = ""
    mode   = 0
    year   = substr($3,3,2)
    month  = substr($3,5,2)
    day    = substr($3,7,2)
    HBdate = day"-"month"-"year
    if ($4 ~ "D")  sign = "-"
    print HBdate ";"";" $7 ";"";" $11 $12 $13 ";" sign $5 ";"";"
    }' $1 > $2
  ;;

* )
  printf "\nkies een andere outputnaam\n\n"
  exit 1
  ;;

esac
printf "\naantal transacties verwerkt: `wc -l < $1` \n\n"

Offline apie1

  • Lid
Re: Rabobank CSV conversietooltje voor HomeBank
« Reactie #10 Gepost op: 2009/03/06, 18:26:43 »
Ik heb nu ook een scriptje gemaakt om bestanden van de ASNbank om te zetten naar homebank-formaat (wijzigingen van wdenhaan inbegrepen).
Ik heb me niet helemaal strikt aan het formaat van homebank gehouden (bij mijn postbankscriptje ook niet) omdat homebank de payee alleen meeneemt als deze al in het adresboek staat. Daarom heb ik de payee ook in de beschrijving gezet. Als er geen rekeningnummer bekend is (bijvoorbeeld bij een PINtransactie), wordt de lange beschrijving als beschrijving gebruikt.
Verder heb ik in awk variabelen benoemd, wat het geheel een stuk leesbaarder maakt en er wordt nu ook gecheckt of alle argumenten opgegeven zijn.

#!/bin/bash

# a small script to format ASN .csv accountinfo to a .csv format HomeBank understands

# Originally made for rabobank files by DFreeze:
# http://forum.ubuntu-nl.org/software-en-configuratie/rabobank-csv-conversietooltje-voor-homebank/
# adapted for ASNbank bij apie1

# format ASNbank:
# date,account from,account to,payee,,,,currency,balance,currency,amount,date,date,number,transfer type,number,description,everything in one cell
# date is dd-mm-yyyy

# format HomeBank:
# date;mode;info;payee;description;amount;category

# date         => format should be DD-MM-YY
# mode         => from 0=none to 5=personal transfert
# info         => a string
# payee        => a payee name
# description  => a string
# amount       => a number with a '.' as decimal seperator, ex: -24.12 or 36.75
# category     => a category name

if [ "$1" = "" ]; then
  printf "Converteer ASNfiles naar Homebankfiles\nGebruik $0 <asnfile> <output>\n"
  exit 1
fi

if [ ! -e ./$1 ]; then
  printf "\ninputfile bestaat niet - controleer de naam \n\n"
  exit 1
fi

if [ "$2" = "" ]; then
  printf "\noutputfile niet opgegeven\n\n"
  exit 1
fi
choice=Y
if [ -e ./$2 ]; then
  printf "\noutputfile bestaat al - overschrijven? [j/N]"
  read choice
fi

case "$choice" in

"j" | "J" | "y" | "Y" | "1" )
  awk 'BEGIN { FS="," }
    {
    gsub ("\"","")
    sub ("^.","",$17)
    sub (".$","",$17)
    sub ("^.","",$18)   
    sub ("..$","",$18)   
    sign   = ""
    year   = substr($1,7,2)
    month  = substr($1,4,2)
    day    = substr($1,1,2)
    HBdate = day"-"month"-"year
    mode   = 0
    info   = $3
    payee  = $4
    description = $17
    description1 = payee" - "description
    amount = $11
    category = "none"
    if ($6 ~ "Af")  sign = "-"
    if (length(info) == 0)  description1 = $18
    print HBdate";"mode";"info";"payee";"description1";"amount";"category
   
    }' $1 > $2
  ;;

* )
  printf "\nkies een andere outputnaam\n\n"
  exit 1
  ;;
esac
printf "\naantal transacties verwerkt: `wc -l < $2` \n\n"

« Laatst bewerkt op: 2009/03/06, 20:55:06 door apie1 »

Re: Rabobank CSV conversietooltje voor HomeBank
« Reactie #11 Gepost op: 2009/04/02, 19:41:00 »
Ik krijg geen CVS meer uit Rabobanks internetbankieren. Is er ook een andere importeermogelijkheid?
Vragen over Ubuntu Nederland of de internationale Ubuntu-gemeenschap? PB of mail me!

Eider

  • Gast
Re: Rabobank CSV conversietooltje voor HomeBank
« Reactie #12 Gepost op: 2009/07/06, 12:28:00 »
Als die TXT kommagescheiden is, is het in feite een CSV, dus dat zou gewoon moeten werken :)

Ik heb het scriptje van DFreeze even aangepast zodat het met de bestanden van de Postbank overweg kan (kommagescheiden dd-mm-jjjj)
#!/bin/bash

# a small script to format postbank .csv accountinfo to a .csv format HomeBank understands

# Originally made for rabobank files by DFreeze:
# http://forum.ubuntu-nl.org/software-en-configuratie/rabobank-csv-conversietooltje-voor-homebank/
# adapted for Postbank bij apie1

# format Postbank (comma separated dd-mm-yyyy):
# "Datum","Naam / Omschrijving","Rekening","Tegenrekening","Code","Af Bij","Bedrag (EUR)","MutatieSoort","Mededelingen"

# format HomeBank:
# date;mode;info;payee;description;amount;category

# date         => format should be DD-MM-YY
# mode         => from 0=none to 5=personal transfert
# info         => a string
# payee        => a payee name
# description  => a string
# amount       => a number with a '.' as decimal seperator, ex: -24.12 or 36.75
# category     => a category name

if [ ! -e ./$1 ]; then
  printf "\ninputfile bestaat niet - controleer de naam \n\n"
  exit 1
fi
choice=Y
if [ -e ./$2 ]; then
  printf "\noutputfile bestaat al - overschrijven? [j/N]"
  read choice
fi

case "$choice" in

"j" | "J" | "y" | "Y" | "1" )
  awk 'BEGIN { FS="," }
    {
    gsub ("\"","")
    sub ("^.","",$10)
    sub (".$","",$10)
    sign   = ""
    mode   = 0
    year   = substr($1,9,2)
    month  = substr($1,4,2)
    day    = substr($1,1,2)
    HBdate = day"-"month"-"year
    if ($6 ~ "Af")  sign = "-"
    print HBdate";"";"$9";"$2";"$2" - " $10 ";" sign $7"."$8";"";"
   
    }' $1 > $2
  ;;
# datum;;mutatiesoort;naam;naam - mededelingen;bedrag;;
* )
  printf "\nkies een andere outputnaam\n\n"
  exit 1
  ;;
esac
cat $2 | grep -v '^Da-um' > $2
printf "\naantal transacties verwerkt: `wc -l < $2` \n\n"


Ik ben ook aan de slag gegaan met HomeBank vandaag en heb veel gehad aan dit scriptje. :)
Er zit alleen nog een kleine fout in waardoor HomeBank de CSV niet importeert.
Bij de regel     print HBdate";"";"$9";"$2";"$2" - " $10 ";" sign $7"."$8";"";"   moet de laatste ";" weggelaten worden.

Offline Dave

  • Lid
Re: Rabobank CSV conversietooltje voor HomeBank
« Reactie #13 Gepost op: 2009/07/06, 13:06:22 »
Dfreeze, ik heb de Postbank en de gegevens die ik download zijn ook in CSV, ik open deze met openoffice.Calc. Ik heb totaal geen verstand van programmeren, wat is het voordeel om het met een scriptje te doen of kijk ik ergens over heen?
Gewoon een vraag uit belangstelling.

Met vriendelijke groet,

Gijs

Gnumeric moet beter en uitgebreider zijn dan Calc, daar al eens mee geprobeerd?

Offline apie1

  • Lid
Re: Rabobank CSV conversietooltje voor HomeBank
« Reactie #14 Gepost op: 2009/07/06, 13:21:57 »
Ik ben ook aan de slag gegaan met HomeBank vandaag en heb veel gehad aan dit scriptje. :)
Er zit alleen nog een kleine fout in waardoor HomeBank de CSV niet importeert.
Bij de regel     print HBdate";"";"$9";"$2";"$2" - " $10 ";" sign $7"."$8";"";"   moet de laatste ";" weggelaten worden.

Jep, die fout had ik er in mijn ASN-versie al uit gehaald. Die is sowieso wat netter.

Offline webrunner

  • Lid
Re: Rabobank CSV conversietooltje voor HomeBank
« Reactie #15 Gepost op: 2010/05/19, 21:14:48 »
Ik heb het scriptje geoptimaliseerd en aangepast voor ING bank (voorheen postbank) met dd-mm-JJJJ notatie.

*oude script verwijderd, zie volgende post voor een betere versie*
« Laatst bewerkt op: 2010/05/20, 21:16:18 door webrunner »

Offline HarzG

  • Lid
Re: Rabobank CSV conversietooltje voor HomeBank
« Reactie #16 Gepost op: 2010/05/19, 23:38:49 »
Ik gebruik geen script. De manier van importeren gaat bij mij zo: Rabo-data downloaden als txt-formaat, importeren in OpenOffice Calc via "invoegen->blad uit bestand". Hier kan ik per kolom kiezen hoe de conversie van de inhoud moet plaatsvinden (met rechter muisknop klikken op kolomkop). Lege kolommen worden via "verbergen" niet geïmporteerd.
Xubuntu 20.04; siduction-15.1.0 Xfce

Offline webrunner

  • Lid
Re: Rabobank CSV conversietooltje voor HomeBank
« Reactie #17 Gepost op: 2010/05/20, 21:15:07 »
Wat een werk!
Het scriptje gaat sneller hoor ;)

Even zonder dollen: dat werkte bij mij niet omdat die .... van de ING het csv bestand op een windows server maken. (zie onder

Hier is nog een verbeterde versie voor het geval je de omschrijvingen niet goed vindt in de vorige.
Tevens haalt dit scriptje het bestand even door "fromdos" omdat ze bij de ING leuk ^M zetten achter veld 10, wat ik nou juist het mooiste info veld vind en dus middenin moest.
fromdos kun je gewoon installeren via synaptic.

Hier is dan de code:

#!/bin/bash

# a small script to format ASN .csv accountinfo to a .csv format HomeBank understands

# Originally made for rabobank files by DFreeze:
# http://forum.ubuntu-nl.org/software-en-configuratie/rabobank-csv-conversietooltje-voor-homebank/
# adapted for INGbank bij webrunner


# format INGbank (comma separated dd-mm-yyyy):
# "Datum","Naam / Omschrijving","Rekening","Tegenrekening","Code","Af Bij","Bedrag (EUR)","MutatieSoort","Mededelingen"

# format HomeBank:
# date;mode;info;payee;description;amount;category

# date         => format should be DD-MM-YY
# mode         => from 0=none to 5=personal transfert
# info         => a string
# payee        => a payee name
# description  => a string
# amount       => a number with a '.' as decimal seperator, ex: -24.12 or 36.75
# category     => a category name

if [ "$1" = "" ]; then
  printf "Converteer ING bestanden naar Homebankfiles\nGebruik $0 <INGbestand> <output>\n"
  exit 1
fi

if [ ! -e ./$1 ]; then
  printf "\ninputfile bestaat niet - controleer de naam \n\n"
  exit 1
fi

fromdos $1

if [ "$2" = "" ]; then
  printf "\noutputfile niet opgegeven\n\n"
  exit 1
fi
choice=Y
if [ -e ./$2 ]; then
  printf "\noutputfile bestaat al - overschrijven? [j/N]"
  read choice
fi

case "$choice" in

"j" | "J" | "y" | "Y" | "1" )
  awk 'BEGIN { FS=",";OFS = ";"; ORS = "\n" }
    {
   
    gsub ("\"","")
    gsub (/\\/," ")
    gsub (">"," ")
    gsub ("   ","")
    sign   = ""
    year   = substr($1,7,4)
    month  = substr($1,4,2)
    day    = substr($1,1,2)
    HBdate = day"-"month"-"year
    mode   = 0
    info   = $10
    payee  = $2
    description = $9
    amount = $7
    category = "onverwerkt"
    if ($6 ~ "Af")  sign = "-"
    if (FNR>1)  print HBdate, mode, info, payee, description, sign $7, category
   
    }' $1 > $2
  ;;

* )
  printf "\nkies een andere outputnaam\n\n"
  exit 1
  ;;
esac
printf "\naantal transacties verwerkt: `wc -l < $2` \n\n"

Dit werkt echt retesnel. 3000 transacties in een fractie van een seconde en direct te importeren.

Offline HarzG

  • Lid
Re: Rabobank mut.txt naar OpenOffice_calc.csv conversie
« Reactie #18 Gepost op: 2010/05/24, 21:25:12 »
@webrunner: Eerst was het iets te ingewikkeld voor mij, later wilde ik "op mijn manier" werken met het script.
#!/bin/bash

# een conversie-script voor Rabobank mut.txt (.csv) voor OpenOffice
# gebaseerd op een script van DFreeze, gemotiveerd door webrunner :-) , aangepast door HarzG
# http://forum.ubuntu-nl.org/software-en-configuratie/rabobank-csv-conversietooltje-voor-homebank/

# maak een kopie van de code, plak het in een bestand, noem dat convert_rabo_oo-calc.sh
# dat bestand moet je achteraf nog de eigenschap "uitvoerbaar" geven (rechter muisknop "eigenschappen"->2e tab-blad)

# uitvoeren in een terminal jij@jouwcomputer:~$ sh convert_rabo_oo-calc.sh mut.txt mut_datum.csv
# Waarbij je de goede namen moet invullen voor het Rabobank bestand (mut.txt) en een naam voor het herschreven bestand.

# het csv-bestand kan met OpenOffice calc gelezen worden met onderstaande indeling
# indeling     => datum; relatie; rekeningnummer; boekingscode; bedrag; omschrijving
# voordeel     => met name het samenvoegen van de omschrijving is handig (anders worden dat 2-3 kolommen)
# spaties      => spaties zijn verwijderd om de cijfers/codes/tekst herkenbaar in de tabel te plaatsen
# Let op:      => bij het openen met OpenOffice vastleggen: datum-kolom als Datum(TMJ), bedragen als US_English ... (rest kan zo blijven)
# verandering  => t.o.v. het oorspronkelijke script is de volgorde van de kolommen aangepast
#              => verder is het rekeningnummer toegevoegd aan de kolommen en de boekingscode
# aanpassing   => wie de volgorde van de kolommen anders wil, kan in de regel met "print HBdate ..." bijv. de "$7" verplaatsen naar het einde

# format Rabobank .csv:
# from account, valuta, date (ISO), Debet or Credit, amount, to account, description, interest date, type of payment (transfer, authorization, ...), ..., additional info, additional info, additional info, additional info,additional info,additional info

if [ ! -e ./$1 ]; then
  printf "\ninputfile bestaat niet - controleer de naam \n\n"
  exit 1
fi

choice=Y
if [ -e ./$2 ]; then
  printf "\noutputfile bestaat al - overschrijven? [j/N]"
  read choice
fi

case "$choice" in

"j" | "J" | "y" | "Y" )

  awk 'BEGIN { FS="," }
    {
    gsub ("\"","")
    sign   = ""
    mode   = 0
    year   = substr($3,3,2)
    month  = substr($3,5,2)
    day    = substr($3,7,2)
    HBdate = day"-"month"-"year
    print HBdate";"$7";"$6";"";"$9";"sign $5";"$11 $12 $13";"
    }' $1 > $2
  ;;

* )
  printf "\nkies een andere outputnaam\n\n"
  exit 1
  ;;

esac
printf "\naantal transacties verwerkt: `wc -l < $1` \n\n"
« Laatst bewerkt op: 2010/05/24, 21:28:47 door HarzG »
Xubuntu 20.04; siduction-15.1.0 Xfce

Offline ertai

  • Lid
    • programming
    • http://www.ertai.nl
Re: Rabobank CSV conversietooltje voor HomeBank
« Reactie #19 Gepost op: 2010/11/14, 23:24:02 »
@webrunner: Je script vergeet de centen. Ik heb het script nu zo:

#!/bin/bash

# a small script to format ASN .csv accountinfo to a .csv format HomeBank understands

# Originally made for rabobank files by DFreeze:
# http://forum.ubuntu-nl.org/software-en-configuratie/rabobank-csv-conversietooltje-voor-homebank/
# adapted for INGbank bij webrunner


# format INGbank (comma separated dd-mm-yyyy):
# "Datum","Naam / Omschrijving","Rekening","Tegenrekening","Code","Af Bij","Bedrag (EUR)","MutatieSoort","Mededelingen"

# format HomeBank:
# date;mode;info;payee;description;amount;category

# date         => format should be DD-MM-YY
# mode         => from 0=none to 5=personal transfert
# info         => a string
# payee        => a payee name
# description  => a string
# amount       => a number with a '.' as decimal seperator, ex: -24.12 or 36.75
# category     => a category name

if [ "$1" = "" ]; then
  printf "Converteer ING bestanden naar Homebankfiles\nGebruik $0 <INGbestand> <output>\n"
  exit 1
fi

if [ ! -e ./$1 ]; then
  printf "\ninputfile bestaat niet - controleer de naam \n\n"
  exit 1
fi

fromdos $1

if [ "$2" = "" ]; then
  printf "\noutputfile niet opgegeven\n\n"
  exit 1
fi
choice=Y
if [ -e ./$2 ]; then
  printf "\noutputfile bestaat al - overschrijven? [j/N]"
  read choice
fi

case "$choice" in

"j" | "J" | "y" | "Y" | "1" )
  awk 'BEGIN { FS=",";OFS = ";"; ORS = "\n" }
    {
   
    gsub ("\"","")
    gsub (/\\/," ")
    gsub (">"," ")
    gsub ("   ","")
    sign   = ""
    year   = substr($1,3,2)
    month  = substr($1,5,2)
    day    = substr($1,7,2)
    HBdate = day"-"month"-"year
    mode   = 0
    info   = $10
    payee  = $2
    description = $9
    amount = $7
    amount2 = $8
    category = "onverwerkt"
    if ($6 ~ "Af")  sign = "-"
    if (FNR>1)  print HBdate, mode, info, payee, description, sign $7"."$8, category
   
    }' $1 > $2
  ;;

* )
  printf "\nkies een andere outputnaam\n\n"
  exit 1
  ;;
esac
printf "\naantal transacties verwerkt: `wc -l < $2` \n\n"
Is je vraag opgelost? Markeer het als [OPGELOST] in de titel van je bericht!

CasparV

  • Gast
Re: Rabobank CSV conversietooltje voor HomeBank
« Reactie #20 Gepost op: 2011/10/17, 19:44:01 »
Voor ING-klanten heb ik het volgende scriptje online gezet:

http://caspar.verhey.net/ing-homebank/

Dit omdat ik in de versie van apie1 een rare bug had, en ik heb even met hem contact gehad maar hij wist er zo snel ook geen oplossing voor. Daarom mijn python-ervaring wat opgepoetst en zelf een nieuw script gemaakt.

Offline HarzG

  • Lid
Re: Rabobank CSV conversietooltje voor HomeBank
« Reactie #21 Gepost op: 2011/10/17, 21:15:23 »
De laatste stand van de Rabo voor LibreOffice
#!/bin/bash

# een conversie-script voor Rabobank mut.txt (.csv) voor LibreOffice
# gebaseerd op een script van DFreeze, gemotiveerd door webrunner :-) , aangepast door HarzG
# http://forum.ubuntu-nl.org/software-en-configuratie/rabobank-csv-conversietooltje-voor-homebank/

# maak een kopie van de code, plak het in een bestand, noem dat convert_rabo_oo-calc.sh
# dat bestand moet je de eigenschap "uitvoerbaar" geven (rechter muisknop "eigenschappen"->2e tab-blad)

# uitvoeren in een terminal jij@jouwcomputer:~$ sh convert_rabo_oo-calc.sh mut.txt mut_datum.csv
# Waarbij je de goede namen moet invullen voor het Rabobank bestand (mut.txt) en een naam voor het herschreven bestand.

# het csv-bestand kan met LibreOffice calc gelezen worden met onderstaande indeling
# indeling     => datum; relatie; rekeningnummer; boekingscode; bedrag; omschrijving
# voordeel     => met name het samenvoegen van de omschrijving is handig (anders worden dat 2-3 kolommen)
# spaties      => spaties zijn verwijderd om de cijfers/codes/tekst herkenbaar in de tabel te plaatsen
# Let op:      => bij het openen met LibreOffice vastleggen: datum-kolom als Datum(TMJ), bedragen als US_English ... (rest kan zo blijven)
# verandering  => t.o.v. het oorspronkelijke script is de volgorde van de kolommen aangepast
#              => verder is het rekeningnummer toegevoegd aan de kolommen en de boekingscode
# aanpassing   => wie de volgorde van de kolommen anders wil, kan in de regel met "print HBdate ..." bijv. de "$7" verplaatsen naar het einde

# format Rabobank .csv:
# from account, valuta, date (ISO), Debet or Credit, amount, to account, description, interest date, type of payment (transfer, authorization, ...), ..., additional info, additional info, additional info, additional info,additional info,additional info

if [ ! -e ./$1 ]; then
  printf "\ninputfile bestaat niet - controleer de naam \n\n"
  exit 1
fi

choice=Y
if [ -e ./$2 ]; then
  printf "\noutputfile bestaat al - overschrijven? [j/N]"
  read choice
fi

case "$choice" in

"j" | "J" | "y" | "Y" )

  awk 'BEGIN { FS="," }
    {
    gsub ("\"","")
    sign   = ""
    mode   = 0
    year   = substr($3,3,2)
    month  = substr($3,5,2)
    day    = substr($3,7,2)
    HBdate = day"-"month"-"year
    if ($4 ~ "D")  sign = "-"
    print HBdate";"";"$7";"$6";"sign $5";"$9";"";"";"";"$11" "$12" "$13";"$1";"
    }' $1 > $2
  ;;

* )
  printf "\nkies een andere outputnaam\n\n"
  exit 1
  ;;

esac
printf "\naantal transacties verwerkt: `wc -l < $1` \n\n"
Xubuntu 20.04; siduction-15.1.0 Xfce

Offline HarzG

  • Lid
Re: Rabobank conversie transactions.txt voor LibO Calc
« Reactie #22 Gepost op: 2013/05/12, 22:49:38 »
Je het is lang geleden, maar sindsdien waren er geen veranderingen en nu dus wel door de IBAN rekeningnummers.
De  banken, waaronder de Rabobank bieden nu een nieuw formaat aan waarmee de bestanden zijn opgemaakt.

Naast het uitbreiden van de rekeningnummers onder IBAN/SEPA-condities is de indeling van het bestand aangepast. Hierdoor kunnen er bij de Rabobank in veld 7 lege vakken ontstaan. Bij mij is slechts bij een kwart van de boekingen de relatienaam in veld 7 ingevuld. Bij de rest van de binnengehaalde data wordt deze relatienaam getoond in veld 11.

Omdat veld 11 door verschillende instanties weer als tekst-info-veld wordt gebruikt, is het helaas niet mogelijk om een script te maken waarin alles goed gaat. In de onderstaande aangepaste codetekst is een compromis bedacht tussen de "nette" boekingen met een relatienaam in veld 7 en de meerderheid van de andere boekingen met een leeg veld 7. Dat wordt "indien $7 leeg" gevuld met de inhoud van veld $11.
Dat de informatie dan nogmaals voorkomt in mijn samengevoegde veld bestaande uit ,"$11" "$12" "$13", is voor mij geen probleem. Verder kan het voorkomen dat een onbemande pomp naast de relatienaam een 00000 erbij zet voor het niet willen tonen van een rekeningnummer.
#!/bin/bash

# een conversie-script voor Rabobank transactions.txt (.csv) voor LibreOffice
# gebaseerd op een script van DFreeze, gemotiveerd door webrunner :-)
# aangepast door HarzG aan het nieuwe formaat met transactions.txt
# http://forum.ubuntu-nl.org/software-en-configuratie/rabobank-csv-conversietooltje-voor-homebank/

# maak een kopie van de code, plak het in een bestand, noem dat convert_rabo_lo-calc.sh
# dat bestand moet je de eigenschap "uitvoerbaar" geven (rechter muisknop "eigenschappen"->2e tab-blad)

# uitvoeren in een terminal jij@jouwcomputer:~$ sh convert_rabo_lo-calc.sh transactions.txt transactions_datum.csv
# Waarbij je de goede namen moet invullen voor het Rabobank bestand (transactions.txt) en een naam voor het herschreven bestand.

# het csv-bestand kan met LibreOffice calc gelezen worden met onderstaande indeling
# indeling     => datum; relatie; rekeningnummer; boekingscode; bedrag; omschrijving
# voordeel     => met name het samenvoegen van de omschrijving is handig (anders worden dat 2-3 kolommen)
# spaties      => spaties zijn verwijderd om de cijfers/codes/tekst herkenbaar in de tabel te plaatsen
# Let op:      => bij het openen met LibreOffice vastleggen: datum-kolom als Datum(TMJ), bedragen als US_English ... (rest kan zo blijven)
# verandering  => t.o.v. het oorspronkelijke script is de volgorde van de kolommen aangepast
#              => verder is het rekeningnummer toegevoegd aan de kolommen en de boekingscode
# aanpassing   => wie de volgorde van de kolommen anders wil, kan in de regel met "print HBdate ..." bijv. de "$7" verplaatsen naar het einde
# helaas wordt door pinautomaten, de Rabo zelf en veel instellingen veld 7 (relatie/desciption) vaak leeg gelaten en deels wordt veld 11 gebruikt voor tekst die eerder in veld 7 stond vanwege de overgangstijd naar de IBAN rekeningnummers
# de if opdracht in regel 53 vooziet daarin en kopiert dan veld 11 naar veld 7 waardoor veld 7 nooit leeg blijft

# format Rabobank .csv:
# from account, valuta, date (ISO), Debet or Credit, amount, to account, description, interest date, type of payment (transfer, authorization, ...), ..., additional info, additional info, additional info, additional info,additional info,additional info

if [ ! -e ./$1 ]; then
  printf "\ninputfile bestaat niet - controleer de naam \n\n"
  exit 1
fi

choice=Y
if [ -e ./$2 ]; then
  printf "\noutputfile bestaat al - overschrijven? [j/N]"
  read choice
fi

case "$choice" in

"j" | "J" | "y" | "Y" )

  awk 'BEGIN { FS="," }
    {
    gsub ("\"","")
    sign   = ""
    mode   = 0
    year   = substr($3,3,2)
    month  = substr($3,5,2)
    day    = substr($3,7,2)
    HBdate = day"-"month"-"year
    if ($4 ~ "D")  sign = "-"
    if ($7 == "")  $7 = $11
    print HBdate";"";"$7";"$6";"sign $5";"$9";"";"";"";"$11" "$12" "$13";"$1";"
    }' $1 > $2
  ;;

* )
  printf "\nkies een andere outputnaam\n\n"
  exit 1
  ;;

esac
printf "\naantal transacties verwerkt: `wc -l < $1` \n\n"


NB: Het script is dus alleen voor gedownloade Rabobank-transacties.txt bedoeld, niet voor de oude indeling waarbij de bestanden mut.txt heten en ook niet voor andere banken.
Xubuntu 20.04; siduction-15.1.0 Xfce

Offline HarzG

  • Lid
Re: Rabobank CSV conversietooltje voor HomeBank
« Reactie #23 Gepost op: 2013/06/08, 12:32:21 »
... ter informatie voor de gebruikers van HomeBank, KMyMoney, GnuCash e.a.
Bij de overgang naar het nieuwe formaat hebben we weer een "leuke" bij. In het nieuwe download-csv-tekstbestand van de Rabobank staat nu "-INTERPOLIS" i.p.v. "INTERPOLIS". Hierdoor krijg je een extra "relatie" erbij en moet je daar ook bij het filteren van een lijst rekening mee houden. Deze nieuwe met een min staat namelijk vaak helemaal bovenaan en niet meer bij "i*" (waar je dat verwacht).
work-around: haal dat min-streepje handmatig weg als je de boekingen inleest in je tabel of Bank/Money/Cash-pakket en wacht totdat je bank dat oplost. Het wordt waarschijnlijk niet door de Rabo of een andere bank veroorzaakt maar door de verzekering zelf.
Xubuntu 20.04; siduction-15.1.0 Xfce

Offline Mar

  • Lid
Re: Rabobank CSV conversietooltje voor HomeBank
« Reactie #24 Gepost op: 2014/10/20, 18:32:33 »
Hoi allen,

Ik ben Homebank gaan gebruiken omdat ik het toch onprettig vond mijn data in de AFAS cloud te bewaren. Homebank bevalt goed, ik mis alleen het berekenen van een gemiddelde van een post, maar ik heb er goede hoop op dat dat in de volgende versie wordt aangevuld.

Ik heb het importscript voor de ASNbank van Apie1 gewijzigd. Ik heb ondermeer alle informatievelden aan elkaar geplakt tot 1 lang veld waar je goed op kunt matchen. Verder het foutje in de datum verbeterd en de overbodige "sign" regels verwijderd omdat ASN al werkt met een -.  En ik strip alleen het eerste en laatste karaketr van veld 17 en 18, niet de twee laatste.

Ik heb nog wel mijn vraagtekens bij de werking van de andere subs, soms staan er veel spaties in de velden. Mocht iemand daar handiger in zijn, graag verbeteren!

#!/bin/bash

# a small script to format ASN .csv accountinfo to a .csv format HomeBank understands

# Originally made for rabobank files by DFreeze:
# http://forum.ubuntu-nl.org/software-en-configuratie/rabobank-csv-conversietooltje-voor-homebank/
# adapted for ASNbank bij apie1 and updated by Mar.

# format ASNbank:
# date,account from,account to,payee,,,,currency,balance,currency,amount,date,date,number,transfer type,number,description,everything in one cell
# date is dd-mm-yyyy

# format HomeBank 4.6.3:
# date;mode;info;payee;description;amount;category;tag

# date         => format should be DD-MM-YY
# mode         => from 0=none to 5=personal transfert
# info         => a string
# payee        => a payee name
# description  => a string (I joined all description fields into one)
# amount       => a number with a '.' as decimal seperator, ex: -24.12 or 36.75
# category     => a category name
# tag          => tags separated by space, tag is mandatory since v4.5

if [ "$1" = "" ]; then
  printf "Converteer ASNfiles naar Homebankfiles\nGebruik $0 <asnfile> <output>\n"
  exit 1
fi

if [ ! -e ./$1 ]; then
  printf "\ninputfile bestaat niet - controleer de naam \n\n"
  exit 1
fi

if [ "$2" = "" ]; then
  printf "\noutputfile niet opgegeven\n\n"
  exit 1
fi
choice=Y
if [ -e ./$2 ]; then
  printf "\noutputfile bestaat al - overschrijven? [j/N]"
  read choice
fi

case "$choice" in

"j" | "J" | "y" | "Y" | "1" )
  awk 'BEGIN { FS="," }
    {
    gsub ("\"","")
    sub ("^.","",$17)
    sub (".$","",$17)
    sub ("^.","",$18)   
    sub (".$","",$18)   
    year   = substr($1,9,2)
    month  = substr($1,4,2)
    day    = substr($1,1,2)
    HBdate = day"-"month"-"year
    mode   = 0
    info   = $3
    payee  = $4
    description = $17
    long_description = $18
    description1 = payee" - "description" - "long_description
    amount = $11
    category = ""
    tag = "tag1"

    print HBdate";"mode";"info";"payee";"description1";"amount";"category";"tag
   
    }' $1 > $2
  ;;

* )
  printf "\nkies een andere outputnaam\n\n"
  exit 1
  ;;
esac
printf "\naantal transacties verwerkt: `wc -l < $2` \n\n"


En toen meteen maar door met de volgende. Dit is een script in awk voor de Triodos bank! Probleem daar was de geldnotatie, een "." in het duizendtal en een "," voor de centen. Daardoor splitste het script het getal (op de komma) in twee. Dat is met reguliere expressies opgelost.

#!/bin/bash

# a small script to format Triodos .csv accountinfo to a .csv format HomeBank understands

# Originally made for rabobank files by DFreeze:
# http://forum.ubuntu-nl.org/software-en-configuratie/rabobank-csv-conversietooltje-voor-homebank/
# adapted for Triodos by Mar

# format Triodos bank:
# date,account to,amount,credit/debit,payee,account from,transfer type,memo
# date is dd-mm-yyyy

# format HomeBank 4.6.3:
# date;mode;info;payee;memo;amount;category;tag

# date         => format should be DD-MM-YY
# mode         => from 0=none to 5=personal transfert
# info         => a string
# payee        => a payee name
# memo        => a string
# amount       => a number with a '.' as decimal seperator, ex: -24.12 or 36.75
# category     => a category name
# tag          => tags separated by space, tag is mandatory since v4.5

if [ "$1" = "" ]; then
  printf "Converteer Triodos files naar Homebank files\nGebruik $0 <triodosfile> <output>\n"
  exit 1
fi

if [ ! -e ./$1 ]; then
  printf "\ninputfile bestaat niet - controleer de naam \n\n"
  exit 1
fi

if [ "$2" = "" ]; then
  printf "\noutputfile niet opgegeven\n\n"
  exit 1
fi
choice=Y
if [ -e ./$2 ]; then
  printf "\noutputfile bestaat al - overschrijven? [j/N]"
  read choice
fi

case "$choice" in

"j" | "J" | "y" | "Y" | "1" )
  awk 'BEGIN { FS="\",\"|\"" }
    {
    sub (/\./,"",$4)
    sub (/,/,".",$4)
    year   = substr($2,9,2)
    month  = substr($2,4,2)
    day    = substr($2,1,2)
    HBdate = day"-"month"-"year
    mode   = 0
    info   = 0
    payee  = $6"-"$7
    memo   = $9
    bedrag = $4
    sign = ""   
    if ($5 ~ "Debet") sign = "-"
    amount = sign bedrag
    category = ""
    tag = "tag1"
   
    print HBdate";"mode";"info";"payee";"memo";"amount";"category";"tag
   
    }' $1 > $2
  ;;

* )
  printf "\nkies een andere outputnaam\n\n"
  exit 1
  ;;
esac
printf "\naantal transacties verwerkt: `wc -l < $2` \n\n"


Veel plezier ermee en ik zie graag aanvullingen!

Grts
Mar