How many contacts can I convert from Excel at once?

Quick answer. A desktop converter will read as many rows as Excel can hold, which is 1,048,576 per sheet. The real ceiling sits at the other end. Google Contacts, the address book behind Gmail and Google Workspace, accepts 3,000 per import and caps an account at 25,000. iCloud tops out at 50,000 stored contacts per Apple ID and gets fussy well before that. So convert the whole spreadsheet in one pass, then import in batches.

Most people ask this question because a conversion failed and they assume the tool choked on volume. It usually did not. Something downstream refused the file and gave a vague error.

The three ceilings that actually apply.

  • Your spreadsheet, 1,048,576 rows per sheet in any Excel version since 2007

  • Your converter, which on desktop is limited by RAM and patience rather than a hard count

  • Your destination contact app, which is almost always the number that stops you

What is the real limit when converting Excel contacts to vCard?

A row becomes a contact. That is the whole model. There is no structural reason a converter cannot process 200,000 rows, and desktop tools routinely do. Files that big just take minutes instead of seconds.

Browser based converters are a different story. They upload your spreadsheet to somebody else's server, which introduces a request timeout, a file size cap and a queue. Most free web converters stop somewhere between 20 and 500 rows. That is a business decision, not a technical one.

The old versions of Excel are worth a note. Anything saved as .xls from Office 97 through 2003 holds a maximum of 65,536 rows. If your source is a legacy .xls and the count looks suspiciously round, that is why. The row ceiling is identical across the modern variants, so XLSX, XLSM macro enabled workbooks and XLSB binary workbooks all behave the same on volume. XLSB parses faster on very large sheets, which is the only practical difference at scale.

Field mapping is the other thing that scales badly. A converter that reads your header row and works out which column is a mobile number and which is a job title will handle 50,000 rows as easily as 50. One that expects a fixed column order will fail on the first sheet that does not match.

How many contacts can Google Contacts import at once?

3,000 per file. Google states it plainly. Imports fail when you push more than 3,000 contacts at a time, and Google's own advice is to split larger sets into multiple files before importing, with a separate account ceiling of 25,000 contacts.

There is a wrinkle worth knowing. The 3,000 figure applies to CSV. For vCard files, several practitioners report a lower working number. SharedContacts puts it at 3,000 for CSV against 1,000 for vCard, and Univik's testing found that files near the stated ceiling slow down noticeably while batches of around 1,000 import cleanly every time.

There is also a size cap independent of the count. Google rejects any file over 20 MB, each contact must stay under 128 KB, and no single field can exceed 1,024 characters apart from Notes. Embedded photos are what blow this up. A 500 contact file with photos can pass 50 MB without you noticing.

Practical batch size for Google is 1,000.

How many contacts can iCloud handle?

The account ceiling is high and the per file behaviour is fragile. Cisdem lists the constraints Apple applies, noting that import errors typically mean the account already holds 50,000 contacts, or the file contains a contact larger than 256 KB, or a photo larger than 224 KB.

iCloud is also the strictest parser of the major platforms. Univik's guidance is blunt about it. A file that imports perfectly into Google Contacts can fail completely on iCloud.com, and the fix is to strip non standard properties, remove embedded photos and upload in groups of 200 to 300 rather than one large file.

Practical batch size for iCloud is 250. The same figure applies when the destination is an iPhone directly, because iOS uses the same parser.

What are the Outlook and Android contact import limits?

Outlook is the awkward one. Microsoft's own documented path for a multiple contact VCF is not a bulk import at all. Their instructions route the VCF through Windows Contacts and out again as CSV, and they acknowledge that past roughly 50 contacts the process becomes tedious because each contact needs a separate confirmation with no way to accept them all at once.

So for Outlook, do not fight it. Convert to one VCF per contact and point the import dialog at the folder, or convert to CSV instead and use the Import and Export wizard. Both scale fine.

Android is the easier case. It reads vCard 2.1 and 3.0 reliably and handles a few thousand records in one file on most handsets. Support for 4.0 is uneven across manufacturer contact apps, so 3.0 remains the sensible export target.

CRMs vary wildly, and the number is rarely on the marketing page. Salesforce, HubSpot and Pipedrive all publish their own import ceilings in support documentation rather than in the product. Oracle CRM On Demand, for instance, allows a standard user 2,000 contacts per import while a company administrator can push 30,000 records at a time within a 20 MB file. Check your own platform's number before you plan the batches.

Can you do this free without any converter?

Yes, and you should try it first if the list is small. Windows has the whole path built in and the Outlook Import and Export wizard picks up where it leaves off.

Save the spreadsheet as CSV, open Windows Contacts, choose Import and pick CSV, map each column to the matching contact field, then choose Export and pick vCard. That produces one .vcf per contact in a folder. Microsoft documents this same route for the reverse direction and it works either way.

Two caveats. The mapping dialog is per column and tedious. And the CSV step is where accented characters get mangled unless you save as CSV UTF-8 rather than plain CSV. For a few hundred contacts it is free and fine. Past that, the clicking stops being worth it.

Free converters have their own ceilings, and they are lower than people expect. vCard Wizard's free edition, for example, handles only 5 contacts per import or export, and saving contacts in bulk to a single vCard file is not in the free tier at all. That number is not a technical limit. It is where the paywall sits.

Should you deduplicate before or after conversion?

Before. Always before.

A duplicate row becomes a duplicate vCard, and every major contact app handles duplicates differently. Google merges some automatically and leaves others. Thunderbird does no deduplication on import whatsoever. iCloud will happily store both copies. Once 400 duplicates are inside the address book, cleaning them up is far more work than an hour with Remove Duplicates in Excel.

While you are in the spreadsheet, three more passes pay for themselves.

  • Normalise phone numbers to full international form with the country code, known as E.164, because a bare local number will not dial from a phone in another country

  • Delete rows with no name at all, since a record with no FN property either fails validation or lands as a blank entry

  • Check for stray leading spaces in the name column, which silently break alphabetical sorting after import

Why does a large Excel to vCard conversion fail when the count is fine?

Volume gets the blame. These four are the actual causes.

Version mismatch. A vCard 2.1 file going into iCloud fails or partially imports. vCard 3.0 is the safest common denominator across iCloud, Google, Outlook, Android and iPhone. Every valid record has to open with BEGIN:VCARD, close with END:VCARD and carry a VERSION line plus an FN name property, which is what the vCard specification requires, RFC 2426 for version 3.0 and RFC 6350 for version 4.0. Miss one of those and the parser drops the entry without telling you which one.

Photos. Base64 image data inflates a file enormously and trips every size cap that exists. Strip photos before a bulk import and add them later if they matter.

Encoding. A spreadsheet routed through Save As CSV loses non ASCII characters unless you force UTF-8. Names with accents come out mangled and some importers reject the record entirely. Reading the .xlsx directly avoids this because the format is UTF-8 already.

Sync conflicts. If the destination device is mid sync over CardDAV while you import, records can land twice or not at all. Turn contact sync off on the phone, import, then turn it back on.

Silent partial imports. The worst failure mode. The importer says success, and 400 of your 568 contacts are missing. Always compare the final count against the source row count. Do not assume.

How do you plan a large contact migration in batches?

Convert once, import many. Do not run the converter repeatedly to produce artificial batches.

  • Clean the spreadsheet first. Delete blank rows, unmerge merged cells, make sure the top row labels every column in plain words

  • Convert the entire sheet in a single pass and keep the output

  • Test import with 10 contacts and verify every field landed in the right place

  • Split the output into batches sized for the destination

  • Import batch by batch and count after each one

  • Keep the original spreadsheet until the destination is verified

For a 12,000-contact list going into Google, that is 12 imports of 1,000. Twenty minutes of clicking, but it works the first time.

Frequently asked questions

Is there a maximum number of contacts in a single VCF file? The vCard standard sets no limit. You can put a million contacts in one .vcf and it remains valid. Whether anything will import it is a separate question.

Can Excel itself hold enough rows for a big contact list? Yes. Any .xlsx sheet holds 1,048,576 rows. Legacy .xls stops at 65,536, which is the more common surprise.

Does converting 50,000 contacts take a long time? On a desktop tool, minutes rather than hours. The parse is the slow part and it scales roughly linearly with row count.

Should I split before converting or after? After. Splitting the spreadsheet first multiplies the chances of a column mapping mistake, because each file gets parsed separately.

Why did only some of my contacts import? Individual records failed validation while the rest went through. Usual suspects are an oversized photo, a field over the character limit or a stray character the parser rejected. Find the missing names and inspect those rows.

Will duplicate rows create duplicate contacts? Yes, one for one. Run Remove Duplicates in Excel before you convert, because cleaning duplicates out of a phone address book afterwards is much slower.

Do I need Microsoft Office installed to convert? Not with a tool that parses the spreadsheet natively. Office is only required if the converter is driving Excel behind the scenes.

Getting the Excel contact batch size right the first time

The number you can convert and the number you can import are two different figures and confusing them is what turns a 20 minute job into an afternoon. Convert everything at once. Import in the size your destination tolerates. Count at every stage.

If you would rather not build the batches by hand, PCDOTS Excel to vCard Converter reads XLS through XLTX without Office on the machine, maps each column to its proper vCard property, so a mobile column becomes TEL with a CELL type, a street column becomes a structured ADR and a company column becomes ORG, rather than everything collapsing into one NOTE field, and writes either a combined file or a separate card for every row, which makes splitting for Google or iCloud a matter of choosing an output mode rather than editing text files. The version picker for 2.1, 3.0 and 4.0 sits in the same dialog, which is where most of these import failures actually start.