Logo

CSV to VCF Converter

Turn a spreadsheet of contacts into one .vcf file your phone can import. Your spreadsheet is parsed in this browser tab and never uploaded.

Drop a CSV file here

The first row has to be your column names. Export from Excel or Sheets as CSV.

Phone numbers are written exactly as your spreadsheet has them. If yours lost their leading plus when Excel treated them as numbers, fix that in the spreadsheet first — formatting the column as text keeps it. Going the other way, the reverse converter pulls contacts back out into columns.

You have four hundred contacts in a spreadsheet and no way to get them into a phone. Typing them in is a weekend you will not get back, and most converters want you to upload the file first. This CSV to VCF converter builds the contact file in your browser instead, so the list never leaves your device.

Turning excel contacts to vcard format in four steps

Save your spreadsheet as CSV first. Both Excel and Google Sheets do it from the export menu, and it is the only format that travels reliably.

  1. Load the file. The first row has to name your columns, or nothing can be matched.
  2. Check the mapping. We guess from your headers. Fix what is wrong and skip what you do not want.
  3. Read the preview. Names and emails in the wrong places means a column is mapped wrong.
  4. Download. One .vcf holding every contact.

We would rather you check the preview than trust the guess. Header matching works well on tidy exports and less well on a sheet where somebody labelled a column “Contact 2”.

Matching spreadsheet columns to vcard fields

Each column becomes one field on the card. Mapping two columns to Mobile and Phone gives a contact with two numbers.

The one that catches people is a single “Full Name” column. Map it to First name and everything imports, but address books that sort by surname will sort every contact under the first letter of their first name. Splitting the column in the spreadsheet first is worth the two minutes.

Contacts with no name at all cannot become a card. We list those row numbers rather than dropping them quietly, so you can decide whether to go back and fill them in.

Why your phone numbers arrive broken, and how to fix it

Check a number in your spreadsheet before converting. If +44 20 7946 0958 now reads 442079460958, Excel treated it as a number and threw away the plus.

That plus is what makes a number dialable from another country. Losing it turns a working contact into one that fails the moment somebody travels.

The fix belongs in the spreadsheet. Format the column as text before typing or pasting, then re-export. We write the number exactly as it arrives and never reformat it, because guessing at country codes is how the plus gets lost twice.

Bulk create vcards from a spreadsheet without uploading it

Everything happens in this browser tab. The spreadsheet is parsed here and the contact file is assembled here.

This is the part worth caring about. A contact list is not your data alone — it holds names, numbers and addresses for hundreds of other people, none of whom agreed to it being uploaded anywhere.

Confirm it in the network panel of developer tools. We serve the JavaScript, so a compromised page could behave differently, which is true of every in-browser tool including ours. Checking is the only thing that turns a claim into a fact.

Getting the finished file to import a contact list to a phone

Email the .vcf to yourself and open the attachment on the device. That works on both iPhone and Android and needs nothing installed.

Expect the import to be all or nothing. Address books rarely offer to pick which contacts to take, so check the file first with the vcf viewer — it counts the cards and flags anything that will not survive.

Duplicates are the usual complaint afterwards. The steps for importing a vcf file to iPhone cover the merge tools on both platforms, because tidying up after an import is the part nobody warns you about.

Start with a clean spreadsheet

Every problem this CSV to VCF converter can hit starts in the source file: numbers stored as numbers, names in one column, blank rows in the middle. Ten minutes of tidying beats fixing four hundred contacts on a phone.

If your list started as an API export rather than a spreadsheet, the JSON to CSV converter gets you to a mappable sheet first. Need one card rather than a list? The vcard generator builds a single contact properly. Pulling contacts back out to a sheet is the job of the vcf to csv converter, and it is worth understanding which vCard version to choose before you commit a few thousand records to one.

Questions about converting spreadsheets to contacts

My phone numbers lost their leading plus somewhere. Where did it go?

+
Almost always Excel, before the file ever reached us. A cell like +44 20 7946 0958 gets treated as a number, the plus is dropped and leading zeros vanish. Format the column as text before you type or paste numbers into it, then re-export.

Why were some rows skipped?

+
Every vCard needs a name or an organisation, and a row with only an email address cannot become a valid contact. We list the skipped row numbers so you can go back and fill them in. Completely blank rows are ignored quietly rather than reported.

Can one row produce a contact with two phone numbers?

+
Yes, by mapping one column to Mobile and another to Phone. Each vCard field can be filled from one column, so three numbers means three columns. If your spreadsheet crams them into one cell separated by slashes, split that column first.

Does the file come out as one .vcf or one per contact?

+
One file holding every card, stacked end to end. That is what phones and address books expect, and importing a thousand separate files is nobody’s idea of a good afternoon. The viewer will show you the count before you import.

My names are in a single "Full Name" column. What happens?

+
Map it to First name and the whole string lands there, which imports fine but sorts oddly in address books that sort by surname. Splitting it into two columns in the spreadsheet gives a better result. A formula or the text-to-columns feature does it in one pass.

What about a birthday column formatted as a date?

+
Export it as text in YYYY-MM-DD form before converting. Spreadsheets store dates as numbers and display them however your locale prefers, so a column that reads 03/04/2026 is genuinely ambiguous. We pass through whatever text arrives rather than guessing between March and April.

Is there a row limit?

+
Nothing fixed. Everything runs in your browser tab, so the limit is your device rather than a server quota. Files in the thousands are fine; tens of thousands will make the page think for a few seconds while it builds the output.

Will duplicate rows create duplicate contacts?

+
Yes, we convert exactly what you give us. Deduplicating means guessing which near-matching rows are the same person, and getting that wrong loses data silently. Sort and dedupe in the spreadsheet, where you can see what is being merged.

Which version should I choose for importing to a phone?

+
Stay on 3.0 unless you have a specific reason. It is the version every address book has understood for two decades, and an import that silently drops contacts is far more annoying than missing a newer field. Version 4.0 is the better format on paper and less reliably supported in practice.

Does my spreadsheet get uploaded anywhere?

+
No. The file is parsed in the browser tab and the .vcf is built there too, which you can confirm in the network panel of developer tools. This matters more than usual here: a contact list names hundreds of other people who never agreed to anything.

Related Tools You Might Like

Advertisement