CSV-tabel (.csv)

RFC Standaard

Comma-Separated Values (CSV) is een veelgebruikt plattetekstformaat voor tabelgegevens. Elke regel is een gegevensrecord en de velden worden gescheiden door scheidingstekens.

XLSX naar CSV converteren

Gratis XLSX-naar-CSV-converter in uw browser. Converteer bestanden direct op uw apparaat.

CSV online comprimeren

Privé - bestanden verlaten uw apparaat niet

Inspecteren en metadata

Besturingssystemen en bestandsanalysators herkennen CSV-bestanden aan de hand van de eerste binaire bytesequentie:

Selecteer of sleep bestanden hierheen

Privé - bestanden verlaten uw apparaat niet

of plak Ctrl+V
Privacygarantie zonder netwerktransmissie: 0 bytes geüpload naar externe servers. Alle verwerking vond lokaal plaats in uw browser-sandbox.

Bestandshandtekening op byteniveau (magic bytes)

Besturingssystemen en bestandsanalysators herkennen CSV-bestanden aan de hand van de eerste binaire bytesequentie:

HEX-HANDTEKENING (OFFSET 0):

Geen (CSV heeft geen vaste bestandshandtekening)

ASCII-WEERGAVE: Tekstbytes; de codering varieert (vaak UTF-8)

Standaardisatie: RFC 4180 / IETF

Technische specificaties

ContainerarchitectuurPlat tekstbestand met scheidingstekens dat tabelgegevens in rijen en kolommen weergeeft
CompressieGzip en Deflate kunnen repetitieve tekst comprimeren; de resulterende grootte hangt af van de data en instellingen
Bytevolgorde (endianness)UTF-8-tekststroom (optionele UTF-8-BOM EF BB BF, gebruikt door Excel)
KleurruimtenNiet van toepassing
Kanalen en structuurDatarijen begrensd door CRLF met kolommen begrensd door komma's
Maximale afmetingenOnbeperkt; kan als stroom tot gigabytes worden verwerkt zonder het hele bestand in het geheugen te laden
TransparantieNiet van toepassing
Streaming en progressiefAlle datapijplijnen ondersteunen ingebouwde regel-voor-regelstroomverwerking

Technische vergelijkingsmatrix: CSV versus concurrenten

Technisch kenmerkCSV (Huidig)Excel (XLSX)ParquetJSON
BestandstypePlatte tekst in tabelvormGecomprimeerd XML-spreadsheetBinaire kolomopslagHiërarchische tekst
Meerdere bladenNee (slechts één platte tabel)Ja (meerdere werkmappen en bladen)Opslag op basis van partitiesGeneste arrays en objecten
DatatypenNiet-getypeerde ruwe tekstGetypeerde cellen, formules, opmaakStrikte binaire kolomtypenPrimitieve typen (tekenreeks, getal, bool)
Big-data-analyseTraag (vereist het lineair lezen van elke rij)Niet geschikt voor big dataUltrasnel (kolomselectie en predicate pushdown)Matig

Veelvoorkomende beschadigingen en gids voor hex-herstel

Kolommen verschuiven naar rechts of het aantal rijen klopt niet.

Oorzaak: Een tekstveld met een niet-geëscapete komma zonder aanhalingstekens eromheen.

Herstel: RFC 4180 vereist dat velden met komma's worden omsloten door dubbele aanhalingstekens: "Smith, John".

Accenttekens worden weergegeven als vreemde symbolen (mojibake zoals é in plaats van é) in Excel.

Oorzaak: Excel heeft een UTF-8-CSV-bestand geopend in de veronderstelling dat het de verouderde Windows-tekencodering ANSI/CP1252 betrof.

Herstel: Voeg de UTF-8-Byte Order Mark van 3 bytes (0xEF 0xBB 0xBF) toe aan het begin van het bestand.

Beveiligingsanalyse en aanvalsvectoren voor parsers

CSV-bestanden worden direct geopend in spreadsheetsoftware zoals Excel en Google Sheets, waardoor gebruikers blootstaan aan aanvallen met formule-injectie (CSV-injectie).

Bekende aanvalsvectoren

  • Formule-injectie: cellen die beginnen met '=', '+', '-' of '@' en spreadsheetmacro's of DDE-opdrachten uitvoeren (bijvoorbeeld '=cmd|' /C calc'!A0').
  • Gegevensexfiltratie via HYPERLINK()-formules die gevoelige celgegevens naar servers van externe aanvallers sturen bij een klik.

Aanbevolen beveiligingspraktijken: Wanneer u gebruikersgegevens naar CSV exporteert, plaatst u een enkel aanhalingsteken (') of tab voor elke cel die begint met '=', '+', '-' of '@' om platte-tekstweergave in Excel af te dwingen.

Historische oorsprong en mijlpalen

2015W3C Model for Tabular Data and Metadata on the Web standaardiseert CSV on the Web (CSVW) met JSON-LD metadatadescriptoren.
2005De IETF publiceert RFC 4180, waarmee de formele specificatie voor CSV-bestanden wordt vastgesteld.
1972De IBM Fortran-compiler (H Extended) implementeert invoer en uitvoer met komma's als scheidingsteken.

Belangrijkste voordelen

  • Maximale eenvoud: leesbaar in elke teksteditor en te importeren in elke database en spreadsheet.
  • Uiterst snelle streaming regel voor regel zonder een volledige in-memory DOM op te bouwen.
  • Minimale overhead: geen uitvoerige tagsyntaxis of schemadefinities.

Technische beperkingen

  • Geen standaardgegevenstypen: getallen, datums, booleans en tekst worden allemaal opgeslagen als ruwe tekenreeksen.
  • Geen ondersteuning voor meerdere bladen, celopmaak, formules of metadata.
  • Conflicten met scheidingstekens (komma's in tekst, decimale komma's in Europese landinstellingen) veroorzaken regelmatig verwerkingsfouten.

Interessante technische weetjes

  • In veel Europese landen waar komma's worden gebruikt als decimaalteken, worden puntkomma's (;) in plaats van komma's gebruikt als CSV-scheidingsteken.
  • Microsoft Excel vereiste vroeger een UTF-8-BOM (0xEF 0xBB 0xBF) om letters met accenten buiten de ASCII-set correct weer te geven.
  • De Britse National Health Service verloor in 2020 bijna 16.000 contactonderzoeksrecords over COVID-19 doordat gegevens werden geïmporteerd in een verouderd Excel-spreadsheetformaat met een limiet van 65.536 rijen.

Veelgestelde technische vragen

Wat is RFC 4180?

RFC 4180 is de officiële IETF-standaard voor CSV. Deze schrijft voor dat velden met komma's, regeleinden of dubbele aanhalingstekens tussen dubbele aanhalingstekens moeten worden geplaatst, en dat aanhalingstekens binnen een veld moeten worden geëscapet door ze te verdubbelen ("").

Waarom worden CSV-bestanden in Excel met verminkte tekens geopend?

Oudere versies van Microsoft Excel gebruiken bij het direct openen van CSV-bestanden standaard de lokale Windows-codetabel (zoals Windows-1252) in plaats van UTF-8. Door een UTF-8-BOM (Byte Order Mark) aan het begin van het bestand toe te voegen, decodeert Excel UTF-8 wel correct.

Wat is CSV-injectie (formule-injectie)?

CSV-injectie treedt op wanneer niet-vertrouwde gebruikersinvoer met formuletekens aan het begin ('=', '+', '-' of '@') wordt geëxporteerd naar een spreadsheetbestand. Wanneer het bestand wordt geopend in software zoals Excel, voert het spreadsheet automatisch de formule of DDE-opdracht (Dynamic Data Exchange) uit. Hierdoor kunnen systeemopdrachten worden uitgevoerd of gegevens worden buitgemaakt.