Wat is het CSV-bestandsformaat?
.csv is een bestandsformaat dat verschillende soorten gegevens opslaat in door tekens gescheiden tekstsets, meestal met een komma - vandaar de naam Comma-Separated Values. Het formaat is gedocumenteerd in RFC 4180 (2005), een minimale maar breed geaccepteerde standaard. Gegevensrecords worden gescheiden door een regeleinde, terwijl individuele veldwaarden gewoonlijk worden omsloten door dubbele aanhalingstekens. Om een letterlijk dubbel aanhalingsteken in een veld op te nemen, wordt dit dubbel geschreven als "".
De eerste regel van een .csv-bestand bevat conventioneel de kolomnamen (een koprij), hoewel de CSV-specificatie de structuur ervan niet verplicht stelt. Recordvelden kunnen worden gescheiden door:
- Komma's,
- Puntkomma's,
- Tabs (zie .TSV),
- Andere tekens - mits consistent gebruikt in het hele document.
.csv-bestanden worden gebruikt voor het opslaan, importeren en exporteren van gegevens in een goed gedefinieerd, platformonafhankelijk formaat dat elke teksteditor kan openen. Omdat de keuze van het scheidingsteken onbeperkt is, kan dit soms problemen veroorzaken tijdens de conversie; daarom moeten importwizards voor gegevens een optie bieden om het te gebruiken scheidingsteken te configureren, zoals het geval is bij spreadsheettoepassingen zoals Microsoft Excel en LibreOffice Calc.
.csv heeft geen bestandssignatuur (magic bytes) en wordt geïdentificeerd door zijn structuur in plaats van zijn inhoud. Een bestand kan optioneel beginnen met een UTF-8 byte-order mark (EF BB BF), dat Excel automatisch schrijft om de codering aan te geven. De meeste programmeertalen bieden speciale bibliotheken voor het betrouwbaar importeren en beheren van .csv-bestanden, waardoor het een van de meest universele formaten voor gegevensuitwisseling is die tegenwoordig in gebruik zijn.
Beveiliging & veiligheid
RISICO: MEDIUMCSV is platte tekst en kan zelf geen code uitvoeren, maar het brengt een reëel risico met zich mee: CSV-injectie (formule-injectie). Als een cel begint met =, +, - of @, kan een spreadsheet dit bij het openen als een formule uitvoeren - aanvallers misbruiken dit in geëxporteerde CSV's om commando's uit te voeren of gegevens te lekken. Moderne versies van Excel/LibreOffice waarschuwen voordat dergelijke formules worden uitgevoerd; schakel ze niet in bij bestanden van onbetrouwbare bronnen. Het dagelijkse „risico” is gegevenscorruptie, geen malware: een verkeerde codering of scheidingsteken dat stilletjes getallen, datums en voorloopnullen verminkt (bijv. postcodes en telefoonnummers die hun voorloop-0 verliezen).
Formaatdetails
in een notendopProgramma's die CSV-bestanden openen
Technische details
diepe specificaties| MIME-type | text/csv |
| Bestandsstructuur | Platte tekst; rijen gescheiden door regeleinden, velden gescheiden door een gekozen scheidingsteken |
| Standaard scheidingsteken | Komma (`,`); puntkomma's en tabs zijn ook veelgebruikte varianten |
| Regeleinde (RFC 4180) | CRLF (`\r\n` volgens specificatie); alleen LF (`\n`) wordt in de praktijk breed geaccepteerd |
| Veld-aanhalingsteken | Dubbel aanhalingsteken (`"`); verdubbeld (`""`) om een letterlijk aanhalingsteken binnen een veld te escapen |
| Koprij | Optionele eerste rij die conventioneel kolomnamen bevat; RFC 4180 laat de kopstructuur ongedefinieerd |
| Bestandssignatuur (magic bytes) | Geen; geïdentificeerd door structuur. Een optionele UTF-8 BOM (`EF BB BF`) kan aan het begin van het bestand verschijnen |
| Ondersteuning voor velden met meerdere regels | Ondersteund wanneer de veldinhoud is omsloten door dubbele aanhalingstekens |
| Datamodel | Alleen een enkele platte tabel; geen nesting, relaties of kolomdatatypen gecodeerd in het formaat |
| Tekencodering | Elke codering afgesproken tussen schrijver en lezer; UTF-8 en Windows-1252 komen het meest voor |
| Ingebouwde compressie | Geen; bestanden worden gewoonlijk gearchiveerd als `.gz` of [ZIP](/format/zip) |
| Geschiktheid voor streaming | Hoog - rijen kunnen regel voor regel worden verwerkt zonder het hele bestand in het geheugen te laden |
| Ondersteuning voor binaire gegevens | Niet standaard ondersteund; binaire inhoud moet als Base64 worden gecodeerd als tekst |
| Rijlimieten van toepassingen | Geen limiet op formaatniveau; Microsoft Excel beperkt de import van bladen tot 1.048.576 rijen |
| Uitgebracht | 1970s (early use); RFC 4180 published 2005 |
| Open standaard | Ja · royaltyvrij |
| Specificatie | www.rfc-editor.org |
CSV conversies
Community V&A
gevraagd door gebruikersNog geen vragen - wees de eerste om iets te vragen over CSV-bestanden.