Back up the iPhone to your Mac or PC, open the backup in OpenExtract, a free app, and save the whole address book in one go: as a spreadsheet for Excel or Google Sheets, or as contact cards that Google Contacts and the Mac's Contacts app import. No iCloud, no account, and an ordinary backup is enough.
The iPhone's Contacts app can share one card at a time, and getting the whole list out usually means syncing it through iCloud and exporting it from a website. That's no help if you don't use iCloud, if the phone is broken, or if all you have is an old backup. Most of the tools that come up when you search for this are paid apps. OpenExtract does it for free, with no trial and no limit on how many contacts you save, and it reads everything on your own computer.
You can save both; it only takes a moment each.
On OpenExtract's start screen, click Back up my iPhone, connect the phone with a cable, tap Trust on it and enter its passcode if it asks, then choose a folder and start. A backup often takes about half an hour. Contacts are in ordinary backups, so encryption is up to you; an encrypted backup holds more, such as call history and web history (here's why encrypted backups are better).
Already backed up with Finder, iTunes or the Apple Devices app? OpenExtract lists the backups it finds on the computer on its start screen, or you can choose Open a backup folder. Here's where iPhone backups are stored.
Open the backup (type its password if it's encrypted) and click Address book on its home page. Every card saved on the phone is there, with its name, company, phone numbers and email addresses, whether or not you were ever in touch with that person. Where you were, See history opens that person's page with your messages, calls and voicemails together.
Click Save contacts at the top right, pick Spreadsheet or Contact cards, and choose where to save. OpenExtract writes Contacts.csv or Contacts.vcf. To save only some contacts, type a name, number, email or company in the search box first; then only the matching cards are saved.
The same files are also under Save to this computer on the backup's home page, next to messages, photos and the rest.
Excel or Google Sheets: open Contacts.csv. The columns are first name, last name, full name, company, phone numbers, email addresses and notes. A contact with several numbers or emails has them in one cell, separated by semicolons.
Google Contacts or Android: at Google Contacts, choose Import and pick Contacts.vcf. An Android phone signed in to the same Google account then shows them.
Mac Contacts app: choose File, then Import, and pick Contacts.vcf.
Do I need an encrypted backup for contacts? No. Contacts are in ordinary backups as well as encrypted ones. If the backup is encrypted, OpenExtract asks for its password when you open it.
Can I get my contacts into Google Contacts or onto an Android phone? Yes. Save them as contact cards (a .vcf file) and import that file at Google Contacts. Once the contacts are in your Google account, an Android phone signed in to the same account shows them.
Which details are saved? First name, last name, the full name, company, every phone number, every email address and the note on each card. Postal addresses, birthdays and contact photos aren't included in the file.
Can I save only some contacts? Yes. Type a name, number, email or company in the search box on the Address book screen, then click Save contacts. Only the cards that match are saved, and the save window says how many.
Does it work without iCloud? Yes. OpenExtract reads a backup saved on your own Mac or PC, so you don't need iCloud, an Apple ID sign-in or the phone itself once the backup exists. It can't read an iCloud backup.
Does anything get uploaded? No. OpenExtract reads the backup on your own computer and doesn't send it anywhere. It goes online only when you let it: to check for a new version, if you allow it (you can turn that off in Settings); to send a problem report or a thank-you, when you click Send; and on Windows, to install Apple's free Apple Devices app from Microsoft, if you ask it to, for backing up an iPhone. Nothing from inside your backup goes with any of them.
Is it really free? Yes. OpenExtract is open source under the MIT license, with no paid tier, no account and no strings attached. The code is on GitHub.
Free, open source, and the backup never leaves your computer.