&Allan.Anderson; &Allan.Anderson.mail;

# CSV-importinsticksprogram

## Anledningar för att importera CSV-filer

I allmänhet är OFX lämpligast att importera Dock tillhandahåller inte alla institutioner data i det formatet. CSV-filer (kommaseparerat värde) är nästan alltid tillgängliga, ibland kallade Excel-filer eller kalkylblad. De kan också oftast skapas snabbt och enkelt genom att spara data du vill importera, som i en textfil, och redigera den manuellt.

Insticksprogrammets huvudfokus är att importera data från bankutdrag, men det finns också en möjlighet att importera vissa investeringsutdrag. Insticksprogrammet skapades ursprungligen för att generera QIF-filer från CSV, som kunde importeras, innan det blev ett CSV-importverktyg. Funktionen finns fortfarande, men kommer troligen tas bort, eftersom insticksprogrammet nu fokuserar på att direkt importera CSV-filer. Dessutom har &kmymoney; en inbyggd möjlighet att exportera QIF-filer, så det finns ingen riktig anledning att skapa en QIF-file från en CSV-fil.

## Hämta insticksprogrammet

&kmymoney; importerar CSV-filer. Funktionen tillhandahålls som ett insticksprogram och är nu inbyggd i huvudprogrammet, både i paket från distributioner och i källkodsfiler. När väl distributionens paket har installerats, eller källfilerna har kompilerats och installerats, visas menyalternativet för att importera CSV-filer automatiskt i undermenyn Arkiv Importera.

Insticksprogrammet för CSV-import är mycket nyare än OFX-insticksprogrammet, men de flesta distributioner byggs nu med CSV-importverktyget redan inkluderat eller tillgängligt som ett separat paket. Försäkra dig om att det är aktiverat i &kmymoney;. Kontrollera med menyalternativet Inställningar Anpassa &kmymoney;...Insticksprogram. Om CSV-importverktyget inte verkar vara installerat i din version, är det första stället att kontrollera samma plats där du hämtade baspaketet för &kmymoney;. Kontrollera om en senare version är tillgänglig, eller om importverktyget är tillgängligt som ett separat paket.

Om du installerar från RPM- eller Deb-paket, bör insticksprogrammet för CSV-import finnas i paketet kmymoney. Om du har byggt från källkod ska det inte finnas några ytterligare krav. Byggprocessen för &kmymoney; bör detektera insticksprogrammets källkod och kompilera den.

## Importera en CSV-fil

För att importera en CSV-fil, välj import i menyraden: Arkiv Import CSV.... Om CSV inte visas under Import, har du inte installerat insticksprogrammet för CSV-import riktigt. Se föregående avsnitt.

CSV-importverktyget har formen av en guide, med en separat sida för varje enskilt steg av processen. Det kan finnas några mindre skillnader mellan texten i den här handboken, beteckningarna på skärmbilderna och beteckningarna som du faktiskt ser i guiden. I sådana fall beskriver handboken hur guiden ser ut i nästa utgåva.

### Guide för CSV-import: Start

När det startas visar CSV-importverktyget sidan Start. Det övre området där data kommer att visas, är inledningsvis tomt. Under det till vänster finns en lista över stegen i importprocessen, med det nuvarande markerat. Till höger finns några kortfattade instruktioner och två alternativknappar, som gör det möjligt att antingen välja Bank eller Investering. Därefter finns en ruta för profilval, som aktiveras när väl en av alternativknapparna har valts. Längst ner i fönstret finns knappar för att gå vidare till nästa steg i guiden, gå Tillbaka till det föregående steget, eller Avbryt importen. I det inledande steget finns också knappen Välj fil för att först välja filen att importera.

Observera också kryssrutan Hoppa över inställning intill profilväljaren. Från början ska inte kryssrutan markeras. När du väl har ställt in en profil och avslutat guiden, sparas parametrarna i resursfilen. Nästa gång du använder samma profil, läses parametrarna in i användargränssnittet. Guiden skulle därefter sega sig igenom de följande sidorna med parametrar som du inte behöver ändra. Så när du är nöjd med en profil, är det istället användbart att markera rutan. Guiden går då direkt till den sista sidan, och under förutsättning att inga problem hittas, behöver du bara klicka på Importera.

Välj först Bank eller Investering, klicka i valrutan som visar "Lägg till ny profil". Om du tidigare har skapat några profiler kan du välja en av dem, skriv annars in ett nytt profilnamn, möjligen namnet på kontot som du vill importera till. Om du skriver in ett nytt profilnamn, tryck på returtangenten för att skapa den. Klicka därefter på Välj fil så öppnas en vanlig filvalsruta där du ska välja CSV-filen som du vill importera.

### Guide för CSV-import: Avgränsare

Guiden har nu gått vidare till sidan Avgränsare, och du bör nu se data.

Det kan verka som om posterna som visas i den övre delen av insticksprogrammets fönster är redigerade, och de kan faktiskt vara det, men eventuella redigeringar behålls inte. Tabellen är bara till för att visas, inte redigeras. Indatafilen ändras aldrig av insticksprogrammet, och data som faktiskt importeras kommer från indatafilen, inte från det som visas. Det enda undantaget till det beskrivs i Värdepapper och symboler nedan.

Insticksprogrammet bör ha detekterat lämplig Fältavgränsare att använda, och det är inte vanligtvis möjligt att välja en annan. I själva verket återställs alla eventuella fältval som du redan kan ha gjort, om du försöker göra det. Det finns också en väljare för Textavgränsare, men i allmänhet är citationstecknet (") riktigt. Klicka nu på knappen Nästa. Beroende på tidigare val som du har gjort, går du nu antingen till sidan Bank eller Investering.

### Guide för CSV-import: Bank

På den här sidan väljer du kolumnnummer som relevanta fält ska importeras från.

För de flesta fält behöver du bara använda lämplig kombinationsruta för att välja passande kolumn. Det finns dock några speciella överväganden.

- I mitten finns två alternativknappar. Om filen har en enda kolumn för alla värden, välj kolumnen Belopp. Om det istället finns separata kolumner för debet och kredit, välj kolumnen Debet och kredit. Det aktiverar antingen val av kolumnen Belopp eller kolumnerna Debet och Kredit.

- Det är möjligt att välja mer än en kolumn för anteckningsfältet med på varandra följande markeringar. Anteckningskolumner som redan är valda är markerade med en asterisk (*) i kombinationsrutan. Om du väljer flera kolumner på detta sätt, sammanfogas de i anteckningsfältet.

- Om du försöker välja samma kolumnnummer för två fält varnar insticksprogrammet dig och rensar båda valen. Det är dock möjligt, om så önskas, att använda samma kolumn i båda fälten Betalningsmottagare eller beskrivning och Anteckning. Om du väljer en kolumn för fältet Betalningsmottagare eller beskrivning och sedan väljer samma fält för Anteckning får du en varning om att duplicerade kolumner har valts, men du blir tillfrågad om du vill fortsätta. Om du vill det, klicka på Ja.

- En särskild anledning att också spara fältet Betalningsmottagare eller beskrivning i anteckningsfältet är att det inkommande fältet Betalningsmottagare eller beskrivning kan ändras helt och hållet vid import, när &kmymoney; matchar transaktioner. Att också välja fältet som anteckning bevarar data som annars skulle gå förlorad.

Om du märker att du har gjort ett felaktigt val, ändra bara valet. Om flera ändringar behöver göras, klicka på knappen Rensa.

När kolumner väl har valts för alla nödvändiga fält, aktiveras knappen Nästa och att klicka på den gör att guiden går vidare.

### Guide för CSV-import: Investering

Sidan liknar sidan Bank, även om den är något mer komplicerad. De flesta val är ganska uppenbara, men det är några alternativ som kan verka förvirrande innan processen har genomförts några gånger.

- Liksom på sidan Bank kan du välja mer än en kolumn för anteckningsfältet.

- Valet av Typ eller åtgärd är till för att identifiera kolumnen som innehåller åtgärdstypen, såsom Köp, Sälj, Utdelning, etc.

- Valet Kursbråkdel är till för att ange bråkdelen eller multiplikationsfaktorn för kompatibilitet mellan importerade och lagrade kurser. Om importfilens kurs är i ören, medan kontot i &kmymoney; har kursen i kronor, välj då 0,01. Eller om datafilen i &kmymoney; har kursen i kronor, och CSV-filen som importeras också har det, ange då Kursbråkdel som 1,0.

- Använd valet Avgiftskolumn om filen har en särskild kolumn för avgifter. Se dock upp med att avgiften kan ha tagits hänsyn till i kursen. Om det finns en avgift som är en procentsiffra istället för ett värde, klicka på kryssrutan Avgiften är i procent. Observera att på denna sidan är detta det enda fältet som explicit innehåller "kolumn" i beteckningen, för att understryka att det gäller avgiftskolumnen, inte den verkliga avgiften.

- Under kolumnväljarna finns två områden för värdepappersidentiteten. Beroende på mäklare eller finansinstitut kan filen innehålla poster för endast ett eller för flera olika värdepapper.

  - Om filen bara innehåller transaktioner för ett enda värdepapper, där namnet möjligen anges på en rubrikrad, ska det matas in i rutan Värdepappersnamn. Namnet som du matar in läggs till i kombinationsrutan för framtida användning. Senare kanske du vill ta bort namnet från listan. Om det är fallet, markera det och klicka därefter på knappen Dölj värdepapper. Detta tar bara bort det från listan, och har ingen effekt på huvudfilen i &kmymoney;.

  - Om filen innehåller transaktioner för flera värdepapper, identifieras var och en av dess telegrafsymbol med ytterligare information i en annan kolumn. Välj kolumner i väljarna Symbol och Detaljinformation. Det kan hända att värdepappret inte har någon officiell symbol, och i så fall kan man hitta på en pseudosymbol. Det är inget problem, så länge den unikt identifierar värdepappret i importfilen. Ibland är själva aktivitetstypen inbäddad i kolumnen med detaljinformation, möjligen inledd med en standardtext. Om fältet exempelvis innehåller typ: utdelning gå till textrutan Filter och skriv in typ: , inklusive det avslutande blanktecknet.

När alla fält som krävs ar markerade, aktiveras knappen Nästa, och klicka på den går vidare i guiden.

### Guide för CSV-import: Rader

På den här sidan anger du om några rader ska ignoreras i början eller slutet av filen. Du anger också formatet på en eventuell datumkolumn.

### Startrad

Ställ in denna så att importverktyget hoppar över eventuella rubrikrader i filen. Valet sparas i profilen för framtida användning. Start- och slutrader påverkar varandra och startraden kan inte vara större än slutraden. Om valet Startrad inte svarar, kontrollera inställningen av slutrad.

### Slutrad

Importverktyget ställer automatiskt in denna till filens sista rad, eller till inställningen som senast sparades. Den behöver bara justeras om det finns sidfotsrader i filen som importverktyget ska ignorera. Annars får du troligen en varning om datafel när insticksprogrammet försöker tolka felaktig data. Återigen, om valet Slutrad inte svarar, kontrollera inställningen av Startrad.

### Datumformat

Det här måste anges i ordningen år, månad, och dag i datumen i filen. Om insticksprogrammet hittar data som är inkompatibel med inställningen, kommer det klaga när du försöker utföra importen. Om inställningen däremot är fel, men ger ogiltiga resultat som inte detekteras (såsom data där dag-värdet aldrig går över 12, så att månad och dag kan vara bytta), får du helt enkelt felaktig data, eftersom insticksprogrammet inte kan veta att du har begått ett misstag. I detta fall kommer felet att vara uppenbart i huvudboken efter importen.

När du väl är klar, aktiveras knappen Nästa och att klicka på den gör att guiden går vidare.

### Guide för CSV-import: Värdepapper och symboler

Efter att sidan Rader har accepterats för en investeringsfil, måste du försäkra dig om att varje värdepapper i filen motsvarar rätt värdepapper i &kmymoney;-filen, innan importen kan fortsätta. Vid detta tillfälle öppnas ett annat fönster som visar värdepappren och symbolerna som finns i importfilen. Observera att i motsats till datavisningen i guidens huvudfönster, importeras ändringarna som görs på den här sidan.

Att fylla i sidan är enkelt om du tänker på följande saker:

- Varje rad representerar en transaktion, och därför kan det verka som om det finns duplicerade rader. Det är ok.

- Varje värdepappersnamn måste exakt motsvara det befintliga värdepappret som angivet i &kmymoney;. Om det inte är fallet, skapas det som ett nytt värdepapper, vilket troligen inte är vad du önskar om det inte representerar inköp av ett nytt värdepapper.

- En symbol måste visas för varje värdepapper.

- Den enda informationen på den här sidan ska vara värdepapprets symbol och namn. All annan information som visas från början (som datum och aktivitetstyp) finns fortfarande i själva importfilen, men ska inte visas här.

Namnet på en symbol eller ett värdepapper kan redigeras genom att dubbelklicka på cellen. Vid behov redigera namnet på varje värdepapper i en av dess rader. Om det riktiga värdepappersnamnet visas i den importerade filen, dubbelklicka på det för att markera det, kopiera och klistra in eller redigera det därefter, med hänsyn till om en variant eller förkortning har används inne i &kmymoney;. Om ett värdepappers namn redigeras, används den redigeringen för alla rader med samma symbol.

Alla rader utan en symbol behandlas som ett checkobjekt av kontantdepå-typ. Om någon transaktion berör ett annat konto, t.ex. ett lönekonto eller en kontantdepå för en mottagen utdelning eller för att göra en betalning, dyker en meddelanderuta upp för att skriva in kontonamnet för överföringen. Det är i allmänhet kontantdepån du valde eller skapade när investeringskontot skapades. Skriv på liknande sätt in kolumnnumret som innehåller betalningsmottagaren, om det begärs. Om ett misstag görs när kontonamnet skrivs in kommer importen att gå vidare, men &kmymoney; kommer inte att känna igen det, och flaggar att dessa transaktioner saknar en kategoritilldelning. Om kontonamnet som begärs är rätt långt, skriv bara in några få tecken. Importen går vidare men transaktionerna flaggas av &kmymoney; att de saknar kategoritilldelning och du måste välja rätt överföringskonto efter importen. Klicka på Ok när du är klar. Importprocessen överlämnas då till &kmymoney;.

Om det finns mer än en transaktion som berör samma värdepapper, kan alla redigeras på en gång, med flerval. För att exempelvis lägga till en symbol för flera rader, tryck och håll nere &Ctrl;-tangenten och markera varje transaktion i symbolkolumnen. Medan &Ctrl;-tangenten fortfarande hålls nere ska alla dessa symbolceller fortfarande vara markerade, så klicka på en och skriv in symbolen. Klicka inne i fönstret, men utanför den kolumnen, eller tryck på returtangenten (inte Ok). Nu när alla transaktionerna har samma symbol, dubbelklicka på informationsinmatningen och redigera värdepapprets namn efter behov. Klicka någon annanstans i fönstret för att acceptera redigeringen (eller tryck på returtangenten), vilket då ändrar alla posterna. Återstående poster visar symbolerna som hämtas från transaktionerna i importfilen.

Klicka nu på Ok, och därefter Importera. Skriv in namnet på en kontantdepå för tillgångar i rutan Skriv in kontonamn. Om du skriver in ett giltigt namn används det kontot. Om du inte orkar skriva in ett riktigt men långt namn, skriv in några få tecken. Importen accepterar det, men transaktionerna i huvudboken behöver få ett riktigt konto tilldelat efter importen. Skriv in numret på kolumnen som innehåller den informationen i rutan Kontantdepå. Nu kan ett fåtal poster visas i rutan Ogiltiga transaktioner eftersom aktivitetstypen inte stämmer med kombinationen av antal, kurs, och belopp. Klicka på Välj transaktionstyp för varje meddelande, så visas en kombinationsruta som anger giltiga aktivitetstyper för den kombinationen av värden.

Nu har importen skett, och du är i &kmymoney; för att välja investeringskontot att använda, och därefter lönekontot om det fanns några transaktioner med typen kontantdepå.

### Guide för CSV-import: Slutför

När den sista sidan nås, validerar insticksprogrammet automatiskt värdena. Om kolumnen eller kolumnerna med numeriska värden är markerade med grönt, har valideringen lyckats och allt som behövs är att klicka på Importera CSV så övergår kontrollen till huvudprogrammet &kmymoney;. Om dock start- och/eller slutraderna är felaktigt inställda, eller om fel kolumner valdes, är markeringen röd, och ett felmeddelande visas som anger var felet har uppstått. Användaren måste då klicka på Tillbaka för att komma till relevant sida för att rätta felet.

Det kan också vara fallet att en av kolumnerna legitimt inte innehåller något värde, om debet- och kreditkolumner används. Det betyder att kolumnen inte har något decimaltecken, och skulle ge en varning som resultat. Om du ser att detta är fallet kan du klicka på någon av knapparna för att acceptera (Acceptera denna eller Acceptera alla).

### Decimaltecken

Ett annat möjligt problem kan vara att det valda decimaltecknet är felaktigt. Att välja tecknet så att det motsvarar data bör avlägsna det felet. Normalt ska du inte behöva ändra valet. Observera att Decimaltecken måste väljas så att det stämmer med filen, inte dina landsinställningar. Om landsinställningarna har ett annat värde, ser du att en konvertering utförs. Visningen av filen i fönstrets övre del visar numeriska fält markerade med grönt om den nuvarande inställningen ger giltiga resultat, annars visas de med rött. Markeringen speglar också inställningarna av Startrad och Slutrad. Det kan finnas varningar om någon av de markerade cellerna inte verkar innehålla det valda tecknet.

### Tusentalsavgränsare

Den behöver inte väljas, eftersom den anges automatiskt baserat på Decimaltecken. Den finns bara med som hjälp. Dessutom är valet inaktivt om inget av värdena som ska importeras är större än eller lika med 1000.

### Importera CSV

Att klicka på knappen instruerar insticksprogrammet att verkställa import av data från filen, baserat på de val du gjorde tidigare. &kmymoney; kommer fråga dig efter vilket konto data ska importeras till.

### Skapa QIF-fil

Knappen ger dig möjlighet att spara data från CSV-filen som en QIF-fil efter att importen är färdig, om du behöver en av någon orsak. Detta var i själva verket den ursprungliga funktionen som ledde till att insticksprogrammet skapades. Dock är möjligheten troligen nu av mindre nytta eftersom &kmymoney; numera själv kan exportera en QIF-fil, och kommer sannolikt att så småningom tas bort.

### Slutföra

För en Bankimport, är insticksprogrammet klart, och &kmymoney; frågar dig efter rätt konto att importera data till, som nämndes ovan. För en Investeringsimport kan dock lite mer krävas. Om insticksprogrammet inte hittar en giltig transaktionstyp vid import av en transaktion, visar det den felande transaktionen, och användaren kan välja en giltig typ som ersättning, beroende på kombinationen av värden för antal, kurs och belopp. För varje transaktion validerar insticksprogrammet kolumnens innehåll för att försäkra att det stämmer med åtgärdstypen. Om exempelvis ett antal finns, men ingen kurs eller belopp antas att transaktionen bara kan vara tillägg eller borttagning av aktier. Eller om det finns ett belopp men inget antal eller kurs, antas en utdelning, etc.

Om du vill spara inställningarna, kom ihåg att klicka på knappen Slutför så stängs insticksprogrammet.

### Lägga till typer av investeringsaktiviteter

Om du ser att dina investeringsutdrag hela tiden inkluderar aktivitetstyper som inte känns igen, lägg bara till dem under sektionen i resursfilen. (Se nedan för mer information om filen.) Exempelvis inkluderar fältet `BuyParam` i sektionen `[InvestmentSettings]` poster för `Purchase`, `Buy`, `New Inv`, och `Switch In`. Om du hittar en annan, lägg till den i rätt lista och starta om insticksprogrammet. Du kanske märker att det finns likheter i de olika fältens poster, och det kan vara så att fel aktivitetstyp väljes. Insticksprogrammet kontrollerar listorna i följande ordning: `Shrsin`, `DivX`, `Reinvdiv`, `Brokerage`, `Buy`, `Sell`, `Remove`. Att arrangera om listorna för att passa det fungerar inte som förväntat, eftersom posterna i resursfilen sorteras i alfabetisk ordning. Om den problematiska parametern är en som du inte behöver, ta bara bort den från filen. Om det inte är möjligt kan du behöva redigera din fil innan inläsning.

### Anpassa CSV-importinsticksprogram

En välkänd nackdel med QIF-formatet är det att det är ett ganska vagt format. Man har samma problem med CSV-filer, men i större omfattning, eftersom det inte alls finns någon allmänt godtagen standard. I synnerhet för investeringsfiler finns det så mycket mer utrymme för variation i hur aktivitetstyperna som förekommer beskrivs. Insticksprogrammet hanterar det genom att lista aktivitetstyperna i en resursfil, som kallas `csvimporterrc`. Platsen filen lagras beror på distributionen. På ett &Linux;-system är det i `$KDEHOME/share/config` där `$KDEHOME` oftast är .config. Att använda resursfilen låter användaren lägga till en aktivitetstyp som utvecklaren inte har stött på. Om filen inte finns när importen körs för första gången skapar insticksprogrammet en standardversion som innehåller några av de mer uppenbara beskrivningarna.

Ett antal exempel på CSV-filer tillhandahålls (i katalogen `kmymoney/contrib/csvimporter/` i källkodsträdet) med förhoppning att de kan vara till hjälp. Det finns t.ex. en aktivitetstyp i investeringsexemplet som heter "`ReInvestorContract Buy : ReInvested Units`". I valideringsprocessen är den första lyckade matchningen av `ReInv` i `ReInvestorContract Buy`, så transaktionen klassificeras därför som `Reinvdiv`, även om `Buy` också nämns. Ett annat exempel som har observerats är aktivitetstypen `Reinvest`, även om transaktionen varken innehåller kurs eller belopp, bara ett antal, så att den behövde behandlas som `Add Shares` eller `Shrsin`.

När insticksprogrammet skapades hade man bara sett ett fåtal investeringsformat att bygga på, och det kan mycket väl vara så att du stöter på ett som inte kan hanteras korrekt. Om du hittar en sådan fil, skicka gärna ett exempel (redigerat för att ta bort eller ersätta personlig information) till &kmymoney;s användarlista &userlist; eller utvecklarlista &devlist;, så kommer utvecklaren att göra sitt bästa för att ändra insticksprogrammet så att det hanteras.