Note, that this recipe is not updated long time and could be outdated!
Got it.

CSV formāta pārveidošana uz QIF

Šajā lapā ir aprakstīts, kā pārveidot interneta banku (t.s. CSV — comma separated values, jeb "ar komatu atdalītu vērtību", kas ne vienmēr ir komats) izdrukas QIF formātā, kuru var importēt dažādas grāmatvedības programmas kā Grisbi un Gnucash, izmantojot Ubuntu Linux darbstaciju.

  1. Izmantojot Swedbank, lejuplādē un saglabā failu Swedbank2QIF.sh.
  2. Izmantot Parex, lejuplādē un saglabā failu Parex2QIF.sh.
  3. Klikšķina uz faila ar labo peles pogu, izvēlas Īpašības.
  4. Klikšķina cilni Atļaujas.
  5. Iezīmē Ļaut izpildīt failu kā programmu un Aizvērt.
  6. Ar dubultklikšķi palaiž failu un izvēlas Palaist terminālī.
  7. Importē sagatavoto statement.csv.qif (vai Statement.csv.qif) failu grāmatvedības programmā.

Kļūdu risināšana

  1. Pārliecinās, ka bankas izdrukas fails atrodas tajā pašā mapē, kur saglabātais konvertēšanas skripts.
  2. Klikšķina uz faila ar labo peles pogu, izvēlas Atvērt ar, tad Cita lietotne... un izvēlas gedit.
  3. Pārliecinās, ka skriptā ir norādīts atbilstošs bankas izdrukas faila nosaukums ņemot vērā lielos un mazos burtus.
  4. Palaiž skriptu termināļa logā un aplūko tā ziņojumus.

Calc2QIF

  1. Lejupielādē no calc2qif.ods un palaiž instalāciju
  2. Ja nepieciešams, var veikt eksportēto datu pārveidi ar Basic makrosu:

    REM  *****  BASIC  *****
    '==========================================
    ' Procedure: format_columns
    '==========================================
    sub format_columns
    on error resume next
    Dim oSheet as Object, oCell as Object
    Dim cRow as Long
    Dim val as Single
    Dim str as String
    Dim txt as Variant
    Dim ctype as String, datestr as String, col3 as String, col4 as String, col11 as String, col12 as String
    Dim valuea() as String
    Dim i as Integer

    ' Define Empty type
    Dim EMPTYCELLTYPE
    EMPTYCELLTYPE = com.sun.star.table.CellContentType.EMPTY

    ' get current sheet
    set oSheet = ThisComponent.CurrentController.ActiveSheet

    ' for all rows with non empty 1. and 2. cells, fill cells in the row according to 1. cell
    cRow = 1
    do while oSheet.getCellByPosition(0,cRow).getType() <> EMPTYCELLTYPE
    oCell=oSheet.getCellByPosition(15,cRow)
    str=oSheet.getCellByPosition(5,cRow).string ' (could be also .Value for numeric, .Text and .getValue)
    ' for i=1 to len(str)
    ' if mid(str,i,1)="," then str=left(str,i-1) & "."  & mid(str,i+1) ' convert string to 00.00 format
    ' next i
    str=replace(str,",","")
    val=csng(str)/100   ' convert to single
    ' val=oSheet.getCellByPosition(5,cRow).value
            ctype = oSheet.getCellByPosition(7,cRow).Formula
    if ctype="D" then ' split debit and credit columns
    oSheet.getCellByPosition(8,cRow).setValue(val)
    oSheet.getCellByPosition(9,cRow).String=""
    else
    oSheet.getCellByPosition(8,cRow).String=""
    oSheet.getCellByPosition(9,cRow).setValue(val)
    end if

      oSheet.getCellByPosition(10,cRow).FormulaLocal=datestr ' could be .FormulaLocal for date or .String for string values)

    col3=oSheet.getCellByPosition(3,cRow).String
    col4=oSheet.getCellByPosition(4,cRow).String

    col11=""
    col12=""
    if ctype="K" then
    if InStr(col3,"ALBERTA") OR InStr(col3,"ODO")  then col11="Ienākumi:Valda alga"
    if col11="" then col11="Ienākumi:Citi"
    if InStr(col4,"Apgrozījums") OR InStr(col4,"Atlikums") then col11="--Nevajag--"
    else
    if InStr(col4,"PIRKUMS") then col11="Pārtika"
    if InStr(col4,"NAUDAS IZSN") then
    if InStr(col4,"KOMISIJA") then
    col11="Izdevumi:Pakalpojumi:Bankas"
    else
    col11="Nauda:Valda skaidrā nauda"
    end if
    end if
    if InStr(col3,"Mālkalne") then col11="Izdevumi:Pakalpojumi:Ūdens un kanalizācija"
    if InStr(col3,"LATVENERGO") then col11="Izdevumi:Pakalpojumi:Elektrība"
    if InStr(col4,"komisija") then col11="Izdevumi:Pakalpojumi:Bankas"
    if InStr(col4,"Konversija") then col11="Aizņēmumi:Kredīts"
    if InStr(col4,"apdrošināšana") then col11="Izdevumi:Pakalpojumi:Bankas"
    if InStr(col3,"VĪTOLIŅA") then col11="Banka:Ievas karte"
    if InStr(col3,"INSURANCE") then
    col11="Izdevumi:Pakalpojumi:Bankas:Dzīvības apdrošināšana"
    end if
    if InStr(col4,"Apgrozījums") OR InStr(col4,"Atlikums") then col11="--Nevajag--"
    if col11="" then col11="Pirkums"
    if col12="" then col12=col4
    end if
    oSheet.getCellByPosition(10,cRow).String = col11
    oSheet.getCellByPosition(11,cRow).String = col12
    cRow = cRow + 1
    loop
    end sub

  

Created by Valdis Vītoliņš on 2011-03-27 10:17
Last modified by Valdis Vītoliņš on 2021-04-13 14:29
 
Xwiki Powered
Creative Commons Attribution 3.0 Unported License