A vCard stores each contact as a set of labelled properties, which is great for phones but awkward for spreadsheets and CRM import wizards that expect rows and columns. This converter flattens one or many vCards into a clean CSV: one row per contact, with consistent columns for names, organisations, the different kinds of email and phone, addresses, birthdays and notes.
How it works
The converter parses every BEGIN:VCARD … END:VCARD block and, for each property, reads its name, its TYPE parameters and its value. Several details matter for getting clean output:
- Structured values.
Nis split into Last and First name;ADRis split into its seven components and the meaningful parts (street, city, region, postal code, country) are joined into one readable address. - Type routing.
EMAILandTELcarryTYPEparameters such asHOME,WORKandCELL. The converter routes each value into the matching column —Email (Work),Phone (Mobile), and so on — falling back to an “Other” column when no type is given. - Quoted-printable decoding. Older exports encode accented characters with
ENCODING=QUOTED-PRINTABLE(for example=C3=A9for é). When that label is present, the bytes are decoded back to UTF-8 so names display correctly. - Text unescaping. vCard escapes commas, semicolons and newlines inside values with a backslash; these are unescaped so the CSV reads naturally.
The result is serialised as standard CSV: any cell containing a comma, double quote or newline is wrapped in double quotes with internal quotes doubled, exactly as spreadsheet apps expect.
The columns
Each contact row includes: Full Name, First Name, Last Name, Organization, Title, three Email columns (Home/Work/Other), four Phone columns (Mobile/Home/Work/Other), two Address columns (Home/Work), Birthday, URL and Note. Empty cells are left blank so the layout stays aligned.
Tips
- Import into Google Sheets with File → Import → Upload, or into Excel via Data → From Text/CSV. Both detect the header row automatically.
- If a column looks empty for a contact that clearly has the data, check the source vCard’s
TYPElabels — an email with no type lands inEmail (Other)rather than Home or Work. - Everything runs locally; nothing about your contacts is uploaded.