Omvormen naar CSV

Zet INI, JSON, NDJSON, TOML, TSV, XML of YAML om naar CSV. Plak de bron of open een lokaal bestand en kies daarna het scheidingsteken en of de uitvoer kolomkoppen krijgt. De omzetting gebeurt in je browser. De invoer wordt niet geüpload.

Hoe het omzetten werkt

Link

Iedere niet-lege NDJSON-regel wordt een rij. Elke regel moet precies één volledige JSON-waarde bevatten. Objectsleutels worden kolommen in de volgorde waarin ze voor het eerst voorkomen. Ontbrekende eigenschappen worden lege velden en geneste waarden blijven als JSON-tekst in één cel staan. Bij een ongeldige regel stopt de omzetting en noemt de foutmelding het regelnummer.

JSON- en YAML-arrays worden rijen. De objectsleutels worden kolommen in de volgorde waarin ze voor het eerst voorkomen. Ontbrekende eigenschappen leveren lege velden op. Geneste objecten en arrays blijven als JSON-tekst in één cel staan.

Iedere INI-sectie wordt een rij. De eerste kolom heet section en waarden buiten een sectie gebruiken global. TSV-rijen houden hun volgorde en krijgen het gekozen CSV-scheidingsteken. De omzetter voegt geen TSV-koprij toe en verwijdert deze ook niet.

Kies bij XML het herhaalde element dat een rij voorstelt. De namen van onderliggende elementen worden kolommen. De attributensleutel bepaalt waar de parser XML-attributen bewaart. Geneste waarden worden JSON-tekst. Het hoofdelement, commentaar en verwerkingsinstructies blijven niet behouden.

Uitvoer instellen

Link

Een komma is het gebruikelijke scheidingsteken. Een puntkomma komt veel voor in landen waar de komma als decimaalteken dient. Het scheidingsteken moet uit één teken bestaan. De koppenoptie geldt wanneer de bron benoemde velden heeft. Ongeldige invoer of een ongeldig scheidingsteken geeft een foutmelding in plaats van onvolledige CSV.

Controleer het resultaat voordat je het in een spreadsheet importeert. Spreadsheetsoftware kan datums, grote gehele getallen en waarden met voorloopnullen veranderen.

Wat CSV kan vastleggen

Link

CSV bewaart een tabel als platte tekst. Iedere regel is een rij en een scheidingsteken verdeelt de velden. Een koprij kan de kolommen benoemen. Bestanden gebruiken meestal de extensie .csv en het mediatype text/csv.

naam,leeftijd,plaats
John,25,Rotterdam
Jane,30,"Den Haag"

Een veld met het scheidingsteken, een dubbel aanhalingsteken of een regeleinde moet tussen dubbele aanhalingstekens staan. Een dubbel aanhalingsteken binnen zo’n veld wordt tweemaal geschreven. CSV legt geen datatypen vast. Iedere cel blijft tekst totdat het ontvangende programma de waarde interpreteert.

CSV-varianten en uitwisseling

Link

CSV lijkt eenvoudig, maar programma’s lezen het niet allemaal op dezelfde manier. RFC 4180 beschrijft een veelgebruikte variant met komma’s, velden tussen dubbele aanhalingstekens en CRLF-regeleinden. Niet ieder bestand dat CSV heet volgt die afspraken. Exportgereedschap kan puntkomma’s gebruiken, koppen weglaten, backslashes als escape gebruiken of lege regels anders behandelen. Ook de tekencodering kan problemen geven als oudere software een lokale codering verwacht in plaats van UTF-8.

De importinstellingen van het ontvangende programma zijn daarom onderdeel van de uitwisseling. Kies hetzelfde scheidingsteken en dezelfde koppeninstelling. Test daarna velden met aanhalingstekens, regeleinden, niet-ASCII-tekens en lege waarden. Een kleine proefimport brengt praktische problemen sneller aan het licht dan de naam van een CSV-variant.

Waar CSV geschikt voor is

Link

CSV werkt goed voor de uitwisseling van één rechthoekige tabel. Spreadsheets, databases, analysegereedschap en boekhoudsystemen kunnen het meestal zonder extra bibliotheek importeren. Je kunt een bestand ook in een teksteditor bekijken of in een script rij voor rij verwerken.

Voor meerdere gerelateerde tabellen of diep geneste records is CSV een slechte opslagvorm. JSON, XML of een database kan dan de structuur bewaren die CSV moet afvlakken.

Wat verloren kan gaan

Link

CSV kent geen objecten, arrays, attributen, commentaar, schema’s of relaties tussen tabellen. De omzetting kan ook geen opmaak, aliassen, naamruimten of regels van een specifieke toepassing bewaren. Rijen met verschillende structuren delen één verzameling kolommen. Ontbrekende waarden worden lege velden, waardoor een lege tekenreeks soms niet meer te onderscheiden is van null of een ontbrekende waarde.

De omzetter houdt de volledige invoer en uitvoer in het geheugen. Hij is geschikt voor gewone lokale bestanden, niet voor exports van meerdere gigabytes.

Bestanden, privacy en opgeslagen werk

Link

Kies een bestand of sleep het naar het bestandsveld. Een herkende extensie selecteert automatisch het juiste invoertype. De browser leest het bestand lokaal met FileReader en uploadt het niet.

Het gekozen formaat, de invoer per formaat, parserinstellingen en CSV-instellingen staan in localStorage. Wisselen van formaat overschrijft geen tekst van een ander formaat. Wis de velden of sitegegevens na verwerking van gevoelige informatie op een gedeeld apparaat.

Gerelateerde hulpmiddelen

Link

Widget gemaakt met staark