CSV-tabel (.csv)
RFC StandaardComma-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:
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
| Containerarchitectuur | Plat tekstbestand met scheidingstekens dat tabelgegevens in rijen en kolommen weergeeft |
| Compressie | Gzip 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) |
| Kleurruimten | Niet van toepassing |
| Kanalen en structuur | Datarijen begrensd door CRLF met kolommen begrensd door komma's |
| Maximale afmetingen | Onbeperkt; kan als stroom tot gigabytes worden verwerkt zonder het hele bestand in het geheugen te laden |
| Transparantie | Niet van toepassing |
| Streaming en progressief | Alle datapijplijnen ondersteunen ingebouwde regel-voor-regelstroomverwerking |
Technische vergelijkingsmatrix: CSV versus concurrenten
| Technisch kenmerk | CSV (Huidig) | Excel (XLSX) | Parquet | JSON |
|---|---|---|---|---|
| Bestandstype | Platte tekst in tabelvorm | Gecomprimeerd XML-spreadsheet | Binaire kolomopslag | Hiërarchische tekst |
| Meerdere bladen | Nee (slechts één platte tabel) | Ja (meerdere werkmappen en bladen) | Opslag op basis van partities | Geneste arrays en objecten |
| Datatypen | Niet-getypeerde ruwe tekst | Getypeerde cellen, formules, opmaak | Strikte binaire kolomtypen | Primitieve typen (tekenreeks, getal, bool) |
| Big-data-analyse | Traag (vereist het lineair lezen van elke rij) | Niet geschikt voor big data | Ultrasnel (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
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.
Gerelateerde conversieparen voor CSV
Het converteren van een Excel-werkblad naar een CSV-tabel extraheert ruwe tabelgegevens naar een veelgebruikt tekstformaat voor brede softwarecompatibiliteit.
Het converteren van eenvoudige, op tekst gebaseerde CSV-bestanden naar functierijke XLSX-spreadsheets maakt geavanceerde gegevensopmaak, formules en meerdere werkbladen mogelijk.
Het converteren van platte tekstbestanden naar gestructureerde relationele databases stelt u in staat om snelle zoekopdrachten uit te voeren en complexe gegevensrelaties te beheren.
Het omzetten van back-upscripts van een relationele database naar platte spreadsheets maakt eenvoudige gegevensanalyse en rapportage mogelijk.
Het converteren van hiërarchische HDF5-datasets naar platte telemetrie-CSV-bestanden zet complexe multidimensionale wetenschappelijke gegevens om in eenvoudige rijen en kolommen voor analyse in spreadsheets.
Door multidimensionale wetenschappelijke NetCDF-rasters te converteren naar platte Telemetry CSV-bestanden, worden complexe klimaat- en oceaangegevens leesbaar in eenvoudige spreadsheetsoftware.
Het converteren van vCard-bestanden naar een contacten-CSV zet hiërarchische contactkaarten om in rijen in een spreadsheet, zodat ze eenvoudig in databases kunnen worden geïmporteerd.