👤CSV→VCF

VCF to Excel Converter — vCard Contacts as an .xlsx Workbook

Phones, iCloud and Google Contacts export an address book as a .vcf because that is the format they speak. The place you actually work is a spreadsheet: a mail merge, a CRM import, or an afternoon of sorting and cleaning a messy list. Drop the vCard here and you get a real .xlsx workbook — names, phones and emails in columns — without uploading anything. Native Excel beats CSV for this job: phone numbers stay text (the + and the leading zeros survive), accented names do not turn into mojibake, and double-clicking the file opens it instead of launching the Text Import Wizard.

👤
Written by Casey Marlin · Last updated
This update: xlsx export verified: phone cells stay text, accents intact
vCard to Excel column mapping: N and FN to name columns, first two TEL and EMAIL lines to Phone 1/2 and Email 1/2, ORG and TITLE to company and job title, ADR parts to street city state ZIP country, URL and NOTE to website and notes

Drop your VCF / vCard file here

.vcf with any number of contacts — vCard 2.1, 3.0 and 4.0 all supported, processed on your device.

Why Excel mangles a CSV of contacts (and .xlsx doesn't)

Double-click a CSV and Excel guesses every column's type. A phone number that "looks like a number" is stored as General: the leading + is stripped or the cell becomes a formula, a UK mobile starting with 0 loses the zero, and a long international number can flip into scientific notation such as 4.47E+11. None of those values survive a round-trip into a phone or a CRM.

Encoding is the other trap. Excel on Windows still assumes ANSI / Windows-1252 when you double-click a CSV with no byte-order mark, so García becomes García. This site's CSV export adds a UTF-8 BOM to dodge that, but an .xlsx file does not have the problem: the workbook stores Unicode and an explicit cell type. Phone columns here are written as text cells, so +44 20 7946 0958 and 07911 123456 come back as those exact strings.

A native workbook also skips the import wizard. Columns are already named, the first row is a header, and you can filter or sort without telling Excel that commas are the delimiter — the reason to convert vCards to Excel rather than to a text file it has to guess at.

What lands in which column

A vCard is nested; a spreadsheet is flat. The converter keeps the fields you actually use in a mail merge or a CRM and gives them stable header names so every row lines up. Full name, first and last come from FN and N. Phones and emails are split into separate columns rather than jammed into one cell. Company and title come from ORG and TITLE. Address is broken into street, city, state, ZIP and country. Website and notes fill the last two columns. Missing fields stay empty, so the sheet stays rectangular.

Multiple telephone numbers become Phone 1 and Phone 2 (with a type column each — cell, work, home, other). Multiple emails become Email 1 and Email 2. A third number is not given its own column; keep the original .vcf if you need every extra TEL line.

GroupColumnsRead from
NameFirst Name, Last Name, Full NameN and FN
PhonesPhone 1, Phone 1 Type, Phone 2, Phone 2 TypeThe first two TEL lines
EmailsEmail 1, Email 2The first two EMAIL lines
WorkCompany, Job TitleORG and TITLE
AddressStreet, City, State, ZIP, CountryADR, split into its parts
OtherWebsite, NotesURL and NOTE

vCard 2.1 / 3.0 / 4.0 all read

Real exports are messier than the spec. Android, iCloud and Google each write a slightly different dialect, and a file that has been through an old Nokia, a SIM tool and a desktop address book can mix versions in one stream. The parser reads all three that exist in the wild — 2.1, 3.0 and 4.0 — card by card.

vCard 2.1 is the one that looks like line noise in a text editor. Non-ASCII names were encoded as quoted-printable, so María shows up as Mar=C3=ADa and a folded line may end in a lone =. The decoder joins those soft breaks and always reads the bytes as UTF-8, so accented names in modern exports survive instead of landing as equals-signs and hex. A CHARSET=ISO-8859-1 vCard from a very old handset can show accented characters wrong — re-save it as UTF-8 first.

Version 3.0 is the common case (escaped commas, folded lines, iCloud grouped properties such as item1.TEL). Version 4.0 adds tel: URIs, which are stripped to the plain number before they go into a phone column. Drop the file — the right decoder runs with no setting to pick.

After the export: mail merge, CRM import, de-duplication

Once the contacts are rows, the usual spreadsheet jobs become ordinary. For a Word or Google Docs mail merge, keep First Name, Last Name and Email 1, upload the .xlsx, and map those headers — they are already split, so you are not writing formulas to carve a full name apart. For a CRM or newsletter tool, check the vendor's required headers and rename a column if they want "FirstName" instead of "First Name". The remaining work is naming, not parsing.

De-duplication is why a lot of people convert a phone backup. Sort by Email 1 or Phone 1, scan for repeats, and delete or merge rows before anything goes back onto a device. Conditional formatting on empty First Name / empty Phone 1 also surfaces the half-filled cards that look fine in a Contacts app and waste a merge. Because phone cells are text, a filter on numbers starting with + or 0 still works — Excel has not rewritten them.

If the destination insists on CSV, use the toggle above or Save As from Excel. Prefer the .xlsx while you clean; convert to CSV only at the last step the importer requires.

Going back to a vCard

Spreadsheets are the working copy; phones still want a .vcf. After you have sorted, de-duplicated and filled the blanks, drop the workbook on the Excel to VCF converter — it reads .xlsx directly, so you skip Save As CSV and the encoding and phone-number traps this page exists to avoid. If the cleaned list is already a CSV, the CSV to VCF converter on the homepage is the same engine from a text file.

Pick vCard 3.0 unless a device is genuinely old. Android, iPhone and Google Contacts all import 3.0; 2.1 is for feature phones and some car head units; 4.0 is for apps that ask for it. Keep the original vCard as the archive until one test contact round-trips cleanly.

VCF to Excel — FAQ

  • Is my VCF file uploaded anywhere?

    No. The converter is JavaScript that runs in your browser tab. The .vcf is read locally, parsed into rows, and written to an .xlsx on your device — there is no upload endpoint. You can disconnect from the network after the page loads and still convert.

  • Will phone numbers keep the + prefix and leading zeros?

    Yes. Phone columns are written as Excel text cells, not General or Number, so +44 20 7946 0958 stays exactly that and a UK mobile like 07911 123456 does not lose the leading zero or flip into scientific notation. That is the main reason to download .xlsx instead of CSV if you are going to open the file in Excel.

  • What happens if a contact has several phones or emails?

    The first two telephone numbers land in Phone 1 / Phone 1 Type and Phone 2 / Phone 2 Type; the first two email addresses land in Email 1 and Email 2. A third number or address is not given its own column — flattening a vCard into a table has to stop somewhere, and two of each is the usable compromise for a mail merge or a CRM import. Keep the original .vcf if you need every extra TEL or EMAIL line.

  • Are contact photos exported to the spreadsheet?

    No. PHOTO (and other binary properties such as LOGO or SOUND) stay in the vCard and are not written into the workbook. Spreadsheet cells are the wrong place for a JPEG per row, and most mail-merge and CRM imports ignore embedded images anyway. Names, phones, emails, company, title, address, website and notes are what land in columns.

  • How many contacts can I convert at once?

    Every BEGIN:VCARD…END:VCARD block in the file becomes a row. The preview table shows the first 8; the download contains all of them. Hundreds or a few thousand contacts are fine in a modern browser. The limit is the memory of the tab, not a server quota — split a huge dump only if the tab starts to struggle.

  • Do I get a .xls file or a .xlsx file?

    Always .xlsx — the Office Open XML workbook Excel 2007 and later, Google Sheets, Numbers and LibreOffice all open natively. Legacy BIFF .xls is not produced. If a destination still insists on .xls, open the download in Excel and use Save As; almost nothing modern actually needs that extra step.

  • Can I get a CSV instead of Excel?

    Yes. Use the CSV / Excel (.xlsx) toggle above the download button, or open the dedicated VCF to CSV converter. The CSV path writes UTF-8 with a BOM so Excel still renders accents; the .xlsx path is the one that also locks phone columns as text.

Parser follows RFC 2426, RFC 6350 and the vCard 2.1 spec. .xlsx phone columns are written as text cells. Last checked: August 26, 2026. About this site