VCF naar CSV omzetten

Hier zet je VCF naar CSV om, gratis en zonder account: sleep het bestand hierboven erin en binnen een paar seconden staat het resultaat klaar om te downloaden. De omzetting gebeurt binnen je eigen browser, dus het bestand wordt nooit geüpload. Het werkt hetzelfde op Windows, macOS en Linux als op iPhone en Android, en het blijft werken als je de verbinding verbreekt.

  • Waar het draait In je browser. Het bestand wordt nooit geüpload.
  • Opnieuw opgebouwd CSV werkt anders dan VCF. Het is dus niet het geleidelijke kwaliteitsverlies van een lossy codec: wat CSV kan uitdrukken wordt getrouw weergegeven, en wat daar geen equivalent heeft blijft helemaal weg.
  • Maximale grootte Tot 100 MB per bestand, gratis en zonder account.
  • Goed om te weten Herhaalde velden — meerdere telefoonnummers, meerdere deelnemers — worden in één cel samengebracht in plaats van over verzonnen kolommen verdeeld. Herhalingsregels, herinneringen en bijlagen horen niet in een tabel thuis en blijven weg.

Tot 100 bestanden tegelijk. Verschillende formaten door elkaar is prima.

Een adresboekexport is een migratie, geen document

Niemand zet contacten om om ze te lezen. Het bestand bestaat omdat iets verplaatst moet worden: een telefoonadresboek naar een CRM, de contacten van een vertrekkende collega naar een gedeeld account, een mailinglijst uit Outlook naar een nieuwsbrieftool.

Dat maakt de verwachtingen van de bestemming het belangrijkste, en bestemmingen hebben een mening. Een CRM-importscherm wil een kolom genaamd zoiets als «Mobiel» en een andere «Werk-e-mail», één op één gekoppeld. Een vCard kent geen van beide begrippen: een lijst telefoon-eigenschappen met typelabels, in elk aantal, in elke volgorde.

Negen kolommen, en waarom phone1 tot phone5 niet het antwoord was

Elk contact wordt een rij met name, first name, last name, organisation, title, emails, phones, addresses en note. De drie meervoudskolommen bevatten alles van dat type voor het contact, gescheiden door een puntkomma, met het type ervoor als de kaart er een opgaf: cell: +49 30 1234567; work: +49 30 7654321.

Het alternatief was genummerde kolommen, en dat is in beide richtingen slechter. Kies vijf en het contact met zes nummers verliest er stilzwijgend een. Kies het maximum in het bestand en iedereen anders krijgt een rij met tien lege kolommen. Verzamelen houdt de tabel eerlijk over wat een vCard werkelijk is.

De telefoon- en e-mailcellen splitsen voor een import

Twee routes, afhankelijk van hoe uniform de export is. Heeft bijna elk contact dezelfde vorm — één mobiel, één werknummer — dan doet Tekst naar kolommen op de puntkomma in Excel of Google Sheets het in één stap.

Varieert de vorm, dan is Power Query het gereedschap: Kolom splitsen op scheidingsteken naar rijen geeft je één rij per nummer, die je dan op het typevoorvoegsel kunt pivoteren naar correct benoemde kolommen. Doe het splitsen in de spreadsheet, vraag niet aan de CRM om een samengestelde cel te interpreteren.

De adreskolom verliest welk deel wat was

Een vCard-adres is een gestructureerde waarde met zeven onderdelen in vaste volgorde: postbus, aanvullend adres, straat, plaats, regio, postcode en land. De meeste kaarten laten er meerdere leeg, dus wordt een gewoon Nederlands adres met lege postbus en aanvulling geschreven.

Die lege onderdelen vallen weg en de rest wordt met komma’s samengevoegd, wat een leesbaar «Hoofdstraat 3, Amsterdam, 1012 AB, Nederland» oplevert en de structuur vernietigt. Niets in de cel zegt dat 1012 AB de postcode was in plaats van een huisnummer.

Het gestructureerde naamveld staat in de omgekeerde volgorde van hoe het leest

Een vCard draagt de naam tweemaal: eenmaal als opgemaakte tekst voor weergave, wat de name-kolom wordt, en eenmaal als gestructureerde waarde in de volgorde familie, voornaam, tussenvoegsel, titel, achtervoegsel. Die gestructureerde waarde vult last name en first name, in die volgorde.

Beide worden bewaard omdat ze vaker verschillen dan je zou verwachten. Kaarten gemaakt door een visitekaartje te scannen hebben vaak een opgemaakte naam en een leeg gestructureerd veld. Sorteren op last name is juist als het gevuld is; terugvallen op name als dat niet zo is, is de veiligste regel.

Velden die de negen kolommen helemaal weglaten

Een moderne vCard kan een foto, een verjaardag, meerdere websites, chatnamen, een geografische positie, een tijdzone, categorieën en talloze leveranciersspecifieke uitbreidingen bevatten. Geen daarvan verschijnt in de uitvoer.

De foto is het vermelden waard, want dat is meestal het grootste deel van het bestand — een base64-gecodeerde afbeelding op elke kaart is waarom een export van vijfhonderd contacten meerdere megabytes is in plaats van honderd kilobyte. Niets in een tabel zou dat kunnen bevatten.

Oude exports, gevouwen regels en quoted-printable-tekst

Zowel dit formaat als zijn kalenderbroertje wikkelt lange waarden af bij vijfenzeventig octetten en markeert de voortzetting met een voorloopspatie of tab. Die worden vóór het ontleden weer samengevoegd, wat voorkomt dat lange notities stilzwijgend afgekapt worden.

Wat niet verwerkt wordt, is quoted-printable, de codering die vCard 2.1 gebruikte voor alles buiten platte ASCII. Exports van oudere telefoons schrijven «Müller» als «M=C3=BCller». Zulke waarden komen ongewijzigd door. Exporteer opnieuw als vCard 3.0 of 4.0 als de bron dat toelaat.

Typelabels komen van de kaart, en alleen de eerste

Het label voor een telefoonnummer of e-mailadres is de eigen typeparameter van de kaart, in kleine letters. Draagt een eigenschap meerdere typen — een nummer gemarkeerd als zowel work als voice — dan wordt alleen de eerste gebruikt.

Dat is meestal de informatieve helft, want voice onderscheidt een telefoon van een fax. Het betekent wel dat de labels zo consistent zijn als de bron: de ene export schrijft cell, de andere mobile, een derde iphone. Normaliseren met een zoek-en-vervang op de hele kolom is de moeite waard.

Dubbele contacten, en de identificatiecode die de tabel je niet geeft

Een contactexport van een telefoon gesynchroniseerd met twee accounts bevat routinematig dezelfde persoon tweemaal, en de CSV geeft dat getrouw weer. Er is geen identificatiecodekolom om op te ontdubbelen.

Doe het in de spreadsheet voor de import in plaats van erna: de meeste CRM’s hebben eigen mergegereedschap, allemaal trager dan een kolom sorteren en rijen verwijderen. Sorteren op de e-mailkolom en scannen op herhalingen kost een paar minuten bij een paar honderd contacten.

De contacten worden hier gelezen en gaan niet verder

De omzetting is gewone JavaScript in dit browsertabblad. Geen engine wordt gedownload, niets wordt geüpload, geen account, geen daglimiet.

Voor dit bestandstype is dat geen luxe. Een adresboek is andermans persoonsgegevens — namen, privénummers, thuisadressen — bij jou in bezit en van hen. Deze richting is bovendien bewust eenrichtingsverkeer: een CSV terugzetten naar vCards zou raden vereisen welke kolom mobiel is en welke thuis.

Zo zet je VCF naar CSV om

  1. Sleep je VCF-bestand op deze pagina, of klik om er een te kiezen.
  2. Kies CSV als doel. De omzetting gebeurt in je browser en het bestand wordt niet geüpload.
  3. Download het klare CSV-bestand.

VCF of CSV: wat er verandert

VCF vergeleken met CSV
VCFCSV
Volledige naamvCard-contactComma-Separated Values
Bestandsextensie.vcf, .vcard.csv
Mediatypetext/vcardtext/csv
Voor het eerst gepubliceerd19951972
SpecificatieRFC 6350RFC 4180
LicentieOpen standaardOpen standaard
Stand van zakenActueelActueel
Opent in een browserGeen browserGeen browser
In plaats daarvan overwogenXLSX, JSON, Parquet

Het resultaat openen

De gebruikelijke programma's overlappen niet: VCF open je in Google Contacts, Apple Contacts en Microsoft Outlook, CSV in Microsoft Excel, LibreOffice Calc en pandas — wie het resultaat krijgt, heeft dus iets uit de tweede rij nodig.

Waarvoor elk formaat bedoeld is

VCF verscheen in 1995. Het is vastgelegd in RFC 6350, en dat is de moeite waard als het bestand het gereedschap moet overleven dat het schreef.

CSV stamt uit 1972, vastgelegd in RFC 4180. Microsoft Excel, LibreOffice Calc en pandas lezen het formaat.

CSV verscheen in 1972 en VCF in 1995. Het oudste is doorgaans het veiligste bestand om te overhandigen; het nieuwste doet hetzelfde werk met minder bytes.

Van VCF naar CSV: veelgestelde vragen

Wordt mijn VCF-bestand ergens heen geüpload?

Nee. Deze omzetting gebeurt volledig in je browser, dus het bestand verlaat je apparaat niet. Je kunt het zelf nagaan: open het netwerktabblad van de ontwikkelaarshulpmiddelen en zet iets om. Je ziet de pagina zelf en de verzoeken voor statistiek en advertenties waarmee deze dienst betaald wordt, en geen enkel verzoek dat je bestand meeneemt.

Is VCF naar CSV omzetten gratis?

Ja. Geen account, geen watermerk en geen dagtegoed dat opraakt: het draait op je eigen machine, dus je mag zo vaak terugkomen als je wilt. De browser verwerkt bestanden tot 100 MB, 100 tegelijk.

Gaat er kwaliteit verloren bij het omzetten van VCF naar CSV?

VCF en CSV beschrijven de inhoud op fundamenteel andere manieren. De omzetting is daarom een reconstructie en geen kopie: getrouw, maar niet byte voor byte identiek. Herhaalde velden — meerdere telefoonnummers, meerdere deelnemers — worden in één cel samengebracht in plaats van over verzonnen kolommen verdeeld. Herhalingsregels, herinneringen en bijlagen horen niet in een tabel thuis en blijven weg.

Moet ik iets installeren om een CSV-bestand te openen?

Voor de omzetting niet: die gebeurt in de browser die je al open hebt staan. Om het resultaat te openen heb je daarna het programma nodig waarmee je apparaat Comma-Separated Values normaal weergeeft.

Meer over deze formaten