Naar inhoud springen

Kommagescheiden bestand

Uit Wikipedia, de vrije encyclopedie
Kommagescheiden bestand
voorbeeld van een *.csv
voorbeeld van een *.csv
Bestandsextensie .csv of .txt
MIME-type text/csv
Portaal  Portaalicoon   Informatica

Een kommagescheiden bestand, of CSV-bestand, in het Engels comma-separated values, is een specificatie voor tabelbestanden. De term moet niet te letterlijk genomen worden, want varianten, zoals met een puntkomma als scheidingsteken, worden ook zo genoemd.

Het CSV-formaat is een eenvoudig en oud databaseformaat. Het bestaat enkel uit tekstgegevens, waardoor het gemakkelijk geïmplementeerd (lezen en/of schrijven) kan worden en een brede verspreiding kent. Waarden worden in principe gescheiden door komma's, en regels door het nieuweregelteken.

Dit soort bestanden wordt vaak gebruikt om de inhoud op te slaan van logboeken, firewalls of tabellen met daarin de gegevens van mutaties of transacties (zoals die op een bankrekening of met een OV-chipkaart).

Deze gegevens kunnen in een rekenblad- of een databaseprogramma worden ingelezen voor presentatie op een beeldscherm als tabel, en voor verdere verwerking.

Instanties die overzichten van transacties beschikbaar stellen aan klanten, bijvoorbeeld banken en openbaarvervoerbedrijven, bieden vaak de keus tussen pdf en csv. Pdf geeft één vast overzicht, csv kan met behulp van de genoemde programma's ook gebruikt worden voor selectie, sortering, berekeningen, enz.

jaar merk type omschrijving prijs
1997 Ford E350 airco, abs, moon 3000,00
1999 Chevy Type "Extended Edition"   4900,00
1996 Jeep  Grand Cherokee  IS VERKOCHT!
air, moon roof, loaded
4799,00

De bovenstaande tabel in een rekenblad kan met de optie "celinhoud opslaan als weergegeven" worden opgeslagen als het volgende CSV-bestand:

jaar,merk,type,omschrijving,prijs
1997,Ford,E350,"airco, abs, moon","3000,00"
1999,Chevy,"Type ""Extended Edition""",,"4900,00"
1996,Jeep," Grand Cherokee ","IS VERKOCHT!
air, moon roof, loaded","4799,00"

Het bovenstaande illustreert de volgende regels:

  • Velden met een komma, aanhalingstekens (") of regel-einden, en velden die met een spatie beginnen of eindigen, worden omsloten door aanhalingstekens.
  • Aanhalingstekens binnen een veld worden verdubbeld.

Aanhalingstekens om getallen met cijfers achter de komma zijn niet nodig als een puntkomma als scheidingsteken wordt gebruikt.

Bij het laden van dit bestand met de optie "Veld met aanhalingsteken als tekst opmaken" uitgevinkt geeft weer de bovenstaande tabel, met de laatste kolom van het type getal, met dien verstande dat deze dan nog verder moet worden opgemaakt door aan te geven dat twee cijfers achter de komma gewenst zijn.

De precieze werking, waaronder de beschikbaarheid en details van de opties, kunnen van het rekenbladprogramma afhangen.

Het opslaan als CSV-bestand van een rekenblad met een kolom met opmaak valuta kan met de optie "celinhoud opslaan als weergegeven" niet direct omkeerbaar zijn. Dit doet zich voor als bij het teruglezen van het CSV-bestand een bedrag met bijvoorbeeld een euroteken als tekst wordt opgevat.

Nederlandstalige spreadsheet-programma's gebruiken vaak de puntkomma als scheidingsteken, omdat de komma als decimaalteken en eventueel de punt als cijfergroeperingssymbool (duizend-separator) wordt gebruikt. Dit voorkomt dat er steeds aanhalingstekens om geldbedragen nodig zijn.

Spreadsheet-programma's zijn vaak voorzien van een wizard die helpt bij het inlezen van tekstbestanden waar de kolommen door een bepaald teken zijn gescheiden. Onder het voorbeeld is te zien hoe bijvoorbeeld een komma in een getal wordt 'behandeld' in een kommagescheiden bestand.

Bij het op het klembord kopiëren van een gerenderde html-tabel en plakken in een teksteditor ontstaat een variant van een kommagescheiden bestand, met het tab-karakter als scheidingsteken. Zowel bij rechtstreeks plakken van het klembord als bij het plakken van dit bestand in een spreadsheet, wordt de tabel daarnaar overgebracht.

In sommige code en tekst editors zoals Visual Studio Code, IntelliJ, Notepad++, CudaText wordt syntax highlighting voor CSV bestanden ondersteund. Hierdoor krijgt de tekst van elke kolom een andere keur zodat de gegevens makkelijker te lezen en te bewerken zijn, zonder het te hoeven openen in een spreadsheet programma.

Nieuweregelteken

[bewerken | brontekst bewerken]

Soms worden in een kommagescheiden bestand tabelregels slechts gescheiden door line feed, terwijl dat bestand gebruikt wordt voor het overbrengen van een tabel naar een systeem dat carriage return line feed vereist als nieuweregelteken. Bekeken in een teksteditor staan de tabelregels dan niet op aparte regels. Voor het spreadsheetprogramma is de linefeed vaak toch voldoende, zodat de overbrenging wel werkt.

Als tekenset wordt vaak UTF-8 gebruikt. Voor het nieuweregelteken, de komma of ander gebruikelijk scheidingsteken, de aanhalingstekens en de getallen maakt het niet uit of UTF-8, Windows-1252 (ANSI) of ISO-8859-1 wordt gebruikt, maar voor teksten waar bijvoorbeeld een euroteken of letters met diakritische tekens voorkomen wel. In een programma dat een csv-bestand laadt kan vaak aangegeven worden welke tekenset gebruikt is.

[bewerken | brontekst bewerken]
  • (en) The Comma Separated Value (CSV) File Format
  • (en) RFC 4180 met CSV definitie bij IETF