beantwoord

Importeren .csv declaratie

  • 10 July 2023
  • 6 reacties
  • 132 Bekeken

Het .csv bestand met declaraties dat te downloaden is via Mijn NS heeft te veel aanhalingstekens.

Elke rij wordt tussen aanhalingstekens (“) gezet. Hierdoor wordt de rij als één waarde beschouwd en in één kolom gezet bij het importeren naar Excel. Als je komma's achter een rij toevoegt, dan worden die nieuwe waarden wel in nieuwe kolommen gestopt. Dus dat werkt wel.

Tevens werkt de kolomnamenrij wel goed, want daar staan geen aanhalingstekens omheen.

Voorbeeld

Datum,Check in,Vertrek,Check uit,Bestemming,Af,Bij,Transactie,Kl,Product,Prive/ Zakelijk,Opmerking
"29-06-2023,00:00,Station A,00:00,Station B,""€0,00"",""€0,00"",Reis,2,Reizen op Rekening Trein,,"
"29-06-2023,00:00,""Busstation, Ergens"",00:00,""Bushalte, Ergens"",""€0,00"",""€0,00"",Reis,2,""Bus, Tram en Metro reizen"",,"
 

Tijden, stationsnamen en prijzen even veranderd voor privacy.

Tijdelijke oplossing

Eerste en laatste aanhalingsteken voor elke rij verwijderen, in bv. Notepad++.

Vraag

Kunnen de onnodige aanhalingstekens standaard weggelaten worden, zodat ze niet meer handmatig verwijderd hoeven te worden? (en nu ik me realiseer dat dit meer een community forum is: heeft iemand een handige manier om het wel in Excel te importeren zonder eerst nog handmatig het bestand te ‘fixen’? NB. Mijn Excel heeft de nieuwe data import wizard. Oude aanzetten werkt niet).

Edit: het importeren naar Excel werkt nog steeds niet, door de dubbele aanhalingstekens (“”) om de busstation en -halte namen, en de komma's die daarin zitten.

icon

Beste antwoord door Laura NS 10 July 2023, 15:00

Bekijk origineel

6 reacties

Voor het verwijderen in Notepad++:

Ctrl+F → Replace →

  • Find what: "\r\n
  • Replace with: \r\n
  • Check Wrap around
  • Search Mode = Extended

→ Replace All

En nogmaals met Find what: \n" + Replace with: \n

Vervang “” in bus-gerelateerde namen en vervang komma's met punten zodat import goed gaat:

Find what: ""([a-Z\-\s\./€0-9]+),(\s*[a-Z\-\s\./0-9]+)""

Replace with: \1.\2

Euroteken blijft er wel in zitten, wat ook nog problemen oplevert met importeren, want dan kan het niet automatisch naar een nummer omgezet worden.

Reputatie 5

Wat jij laat zien heeft inderdaad teveel aanhalingstekens op rare plekken.

Als ik een .csv download ziet het er anders uit. Alleen aanhalingstekens om de velden die een komma bevatten. Gebruik windows 10 met firefox. Ik gebruik geen Excel maar parse het in javascript en zet het in een database. Doe dit al een aantal jaar zo dus volgens mij heeft de geexporteerde csv van ns.nl er altijd als volgt uitgezien:

Datum,Check in,Vertrek,Check uit,Bestemming,Af,Bij,Transactie,Kl,Product,Prive/ Zakelijk,Opmerking
07-07-2023,06:34,Vertrekpunt,07:40,Eindpunt,"€9,99","€0,00",Reis,2,"Bus, Tram en Metro reizen",,
07-07-2023,19:10,Vertrekpunt,20:17,Eindpunt,"€9,99","€0,00",Reis,2,"Bus, Tram en Metro reizen",,

Alsnog zijn die kommas niet nodig, had er ook moeite mee met het parsen. En dat euroteken kan ik wel selecteren met regex door simpelweg de € te kopieren en plakken in de regex.

 

 

Welkom op onze NS Community Emma370. Uhhh, dit is echt hocuspocus voor mij, haha. Ik weet ongeveer wat je bedoelt, maar de technische aspecten daarin zijn mij onbekend. Ik geef het door aan IT, wellicht zien ze hier iets in! 

Badge +3

 

Het probleem is dat men die bedragen “€ 0,00” wel als tekst moet markeren omdat de komma anders als kolomscheidingsteken gezien wordt.

Vroeger gebruikte NS puntkomma als scheidingsteken, dat werkte eeb stuk beter. Een voorbeeldje van zo’n oud bestand hier.

De topic is uit het archief gehaald @Robert B.

Reageer