How to Extract Email Addresses from Spreadsheet Files Including XLSX, XLS, CSV, ODS, XLSM and XLSB Exports from CRMs, ERPs, Databases, Accounting Software and Business Applications
On this page
Supported Spreadsheet Formats
Email Extractor supports six spreadsheet file formats. Each format has different internal structures, and understanding those structures helps you anticipate what the tool will and will not capture:
| Format | Extension | Maximum file size in Email Extractor | Internal structure | What Email Extractor reads |
|---|---|---|---|---|
| Excel (modern) | .xlsx | 25 MB per file | ZIP archive containing XML files; each sheet is a separate XML file; cell values are stored as shared strings or inline strings; cells may store both formula expressions and cached results | Stored cell values across all sheets, including cached formula results, plus hyperlink targets; formulas are not recalculated, so a formula without a stored result may need to be recalculated and saved in a spreadsheet application first |
| Excel (legacy) | .xls | 25 MB per file | Binary format (BIFF); predates the XML-based .xlsx format; used by Excel 97-2003 | Stored cell values and hyperlink targets across all sheets; same formula limitation as .xlsx -- formula results are not computed |
| Excel macro-enabled | .xlsm | 25 MB per file | Same as .xlsx but includes a VBA macro storage component; the macro code itself is in a binary blob within the ZIP archive | Stored cell values and hyperlink targets across all sheets; macros are not executed; VBA code is not parsed for email addresses; same formula limitation |
| Excel binary | .xlsb | 25 MB per file | Binary format used by modern Excel for large files; stores data in a compressed binary format rather than XML; significantly smaller file size than .xlsx for the same data | Stored cell values and hyperlink targets across all sheets; same formula limitation; .xlsb files are often used for very large datasets because the binary format is more compact |
| CSV (comma-separated values) | .csv | 25 MB per file | Plain text file; values separated by commas (or other delimiters: semicolons, tabs); no sheets, no formatting, no formulas -- just raw text data | All text content in the file; CSV is the most reliable format for email extraction because there are no formulas, no hidden sheets, no formatting issues -- every value is plain text |
| OpenDocument Spreadsheet | .ods | 25 MB per file | ZIP archive containing XML files; used by LibreOffice Calc, Google Sheets (export), Apache OpenOffice; similar structure to .xlsx but uses ODF XML schema | Stored cell values and hyperlink targets across all sheets; same formula limitation as Excel formats |
Common Business System Exports
Most business software allows exporting data as spreadsheets. The exported files contain email addresses in different column structures, and some exports include email addresses that are not immediately obvious (buried in notes fields, combined with other data in a single cell, or spread across multiple sheets):
| System type | Common platforms | Export format | Where emails are found | Common issues |
|---|---|---|---|---|
| CRM | Salesforce, HubSpot, Zoho CRM, Pipedrive, Microsoft Dynamics, Freshsales, Close, Copper | CSV (most common); XLSX | Contact records: "Email" column; sometimes multiple email columns ("Email", "Secondary Email", "Other Email"); account records may have a general company email; activity records may contain email addresses in notes or descriptions | Multi-value fields: Salesforce can store multiple emails in a single cell separated by semicolons; HubSpot exports "Associated Contacts" as a semicolon-separated list; some CRMs export only the primary email unless you specifically include secondary email fields in the export |
| E-commerce platform | Shopify, WooCommerce, BigCommerce, Magento, Squarespace Commerce | CSV | Customer records: "Email" column; order records: "Billing Email" or "Customer Email"; subscriber lists: "Email" | Duplicate emails across orders: the same customer email appears once per order; Email Extractor deduplicates automatically; some exports include test orders with internal email addresses |
| Accounting / ERP | QuickBooks, Xero, FreshBooks, Sage, NetSuite, SAP Business One | CSV; XLSX; XLS (older systems) | Customer/vendor records: "Email" column; invoice records may include email in billing details; employee records (payroll exports) contain employee emails | Accounting exports often include both customer and vendor emails in the same export; if you only want customer emails, filter before uploading or use the source-tagged CSV download from Email Extractor to identify which rows contained which emails |
| HR / payroll | BambooHR, Gusto, ADP, Workday, Paylocity, Rippling | CSV; XLSX | Employee records: "Work Email", "Personal Email"; sometimes both in separate columns; emergency contact records may include email | HR exports contain sensitive employee data beyond email addresses; Email Extractor only extracts email addresses and does not retain other fields (names, salaries, SSNs are not captured in the output) |
| Email marketing platform | Mailchimp, Constant Contact, Brevo, ActiveCampaign, Campaign Monitor, ConvertKit | CSV | Subscriber records: "Email Address" or "Email"; may include tags, segments, subscription date, engagement data in other columns | Mailchimp exports include unsubscribed and cleaned (bounced) contacts alongside active subscribers; status columns distinguish them, but Email Extractor extracts all email addresses regardless of status -- filter in the source application before exporting if you only want active subscribers |
| Project management | Asana, Monday.com, Jira, Basecamp, ClickUp, Notion | CSV; XLSX | User/member lists: "Email"; task exports may contain assignee email addresses; comment exports may contain commenter emails | Project management exports are often structured around tasks, not people; the same person's email may appear hundreds of times across task rows; Email Extractor deduplicates automatically |
| Event / registration platform | Eventbrite, Cvent, Splash, Hopin, Zoom (webinar registrants) | CSV; XLSX | Registrant/attendee records: "Email"; sometimes "Ticket Buyer Email" and "Attendee Email" are different (one person buys tickets for a group) | Group registrations: one buyer email for multiple attendee emails; some attendee emails may be missing if the buyer registered on their behalf without providing individual emails |
| Survey / form tool | Google Forms, Typeform, SurveyMonkey, JotForm, Microsoft Forms | CSV; XLSX | Response records: email field (if collected); embedded in response text if respondents typed an email address in a free-text field | Not all surveys collect email; email may appear in any column depending on form structure; Email Extractor scans all columns in all sheets |
| Database (direct export) | MySQL Workbench, pgAdmin, Microsoft SQL Server Management Studio, MongoDB Compass, DBeaver | CSV (most common export format from database tools) | Depends on the table/query: users table ("email" column), contacts table, customers table, leads table | Database exports may contain millions of rows; the 25 MB file size limit in Email Extractor accommodates most exports, but very large tables may need to be exported in batches or filtered before export |
Step-by-Step Extraction Workflow
| Step | Action | Details |
|---|---|---|
| 1. Export from source system | Export the relevant data from your business application as CSV or XLSX | Prefer CSV when available: it is plain text with no formula issues; include all email-related columns; if the system has multiple email fields (primary, secondary, billing), include all of them in the export |
| 2. Check file size | Verify the exported file is under 25 MB | If the file exceeds 25 MB: filter the export to a smaller dataset (by date range, status, or segment); split into multiple files; or remove non-essential columns before uploading (Email Extractor only needs the columns that contain email addresses, but it will scan all columns regardless) |
| 3. Open Email Extractor | Go to bulkemailextractor.com; select "Text and files" | No account or login required |
| 4. Upload files | Drag and drop or browse to select your spreadsheet file(s); you can upload multiple files at once (up to 100 MB total across all files in a batch) | Upload all related exports together: CRM contacts + e-commerce customers + email marketing subscribers; Email Extractor processes all files and deduplicates across them |
| 5. Click "Extract emails" | Email Extractor scans all cells across all sheets in each file and identifies valid email address patterns | Processing time depends on file size and number of files; most spreadsheet files process in seconds |
| 6. Review results | Email Extractor displays the deduplicated list of extracted email addresses; the count shows how many unique addresses were found | If the count is lower than expected: check whether formula cells have stored results and whether the source export includes the expected email data; stored hyperlink targets are also scanned |
| 7. Download results | Choose a download format: TXT (one email per line), CSV (email column), or CSV with sources (email + which file it was found in) | CSV with sources is recommended when uploading multiple files: it shows which system each email came from, helping you identify overlap between systems and trace email provenance |
Format-Specific Considerations
| Issue | Affected formats | What happens | How to handle it |
|---|---|---|---|
| Formula-dependent email values | XLSX, XLS, XLSM, XLSB, ODS | A cell contains a formula like =CONCATENATE(A2,"@",B2) or =VLOOKUP(A2,Sheet2!A:B,2,FALSE) that computes an email address; Email Extractor reads stored cell values, including cached results, and does not recalculate the formula; a missing or stale cached result may cause the email address to be missed | Before exporting: open the spreadsheet in Excel or LibreOffice; select the formula cells; copy and paste as values (Paste Special > Values); save; then upload the values-only version to Email Extractor |
| Hidden columns or sheets | XLSX, XLS, XLSM, XLSB, ODS | Some columns or entire sheets may be hidden in the spreadsheet application; Email Extractor reads all data in the file regardless of visibility settings | Hidden columns and sheets ARE processed; their email addresses ARE extracted; this is usually desirable but may include internal or test email addresses from hidden sheets |
| Multi-value cells | All formats | A single cell contains multiple email addresses separated by semicolons, commas, spaces or line breaks: "alice@example.com; bob@example.com; carol@example.com" | Email Extractor identifies and extracts each individual email address from multi-value cells; no special handling needed |
| Merged cells | XLSX, XLS, XLSM, XLSB, ODS | Merged cells store their value in the top-left cell of the merged range; other cells in the range are empty | Email Extractor reads the stored value from the top-left cell; no data loss for merged cells, but the email appears once (not repeated across the merged range) |
| Special characters and encoding | CSV (primarily) | CSV files from different systems may use different character encodings (UTF-8, Latin-1, Windows-1252); characters may decode incorrectly if the source encoding is not supported; internationalized email addresses may also contain non-ASCII characters | Export as UTF-8 where possible. Review internationalized addresses and any garbled text; encoding problems can affect extraction when they alter the address itself |
| Very large files (approaching 25 MB) | All formats | Files near the 25 MB limit may contain hundreds of thousands or millions of rows | If processing seems slow or the file is rejected for exceeding 25 MB: remove unnecessary columns before uploading (keep only email-containing columns); split into multiple files by date range or segment; export as CSV instead of XLSX (CSV files are often smaller because they do not include formatting data) |
| Password-protected files | XLSX, XLS, XLSM, XLSB | Password-protected spreadsheet files cannot be read without the password | Remove password protection before uploading: open in Excel, remove the password (File > Info > Protect Workbook > Encrypt with Password > delete password > save); then upload the unprotected file |
| Pivot tables | XLSX, XLS, XLSM, XLSB, ODS | Pivot tables display aggregated data; the underlying source data may be on a different sheet or in a pivot cache; Email Extractor reads the displayed cell values, which in a pivot table are typically counts, sums or other aggregations, not individual email addresses | If the emails you need are in the source data behind a pivot table: find the source data sheet (it may be hidden) or export the source data separately; the pivot table summary cells do not contain individual email addresses |
Consolidation Workflow for Multiple Systems
When a business uses several systems that each contain customer, lead or contact email addresses, those systems inevitably have overlapping and inconsistent data. A customer who placed an order (e-commerce platform) may also be a CRM contact, an email marketing subscriber and a support ticket submitter. Consolidating email addresses across all systems reveals the true unique count and identifies which systems are missing which contacts:
| Step | Action | Result |
|---|---|---|
| 1. Export from each system | Export contacts/customers from: CRM (CSV), e-commerce (CSV), email marketing (CSV), accounting (CSV), HR (CSV), event registrations (CSV) | One file per system; label files clearly (e.g., "hubspot-contacts-2026.csv", "shopify-customers-2026.csv") |
| 2. Upload all files to Email Extractor | Upload all exported files in a single batch | Email Extractor processes all files and deduplicates across them; the total count shows unique email addresses across all systems |
| 3. Download CSV with sources | Download the "CSV with sources" format | Each row shows the email address and which file(s) it was found in |
| 4. Analyse overlap | Review the source column to identify: emails that appear in only one system; emails that appear in multiple systems; systems with the most unique emails (contacts that exist only in that system) | This analysis reveals data silos: a customer in your e-commerce platform who is not in your CRM is a gap; a CRM contact who is not in your email marketing platform is a missed communication opportunity |
| 5. Reconcile and import | Use the deduplicated list to update each system: add missing contacts to the CRM; add missing subscribers to the email marketing platform (with appropriate consent); flag outdated or inconsistent entries | The consolidated list becomes the master email inventory; repeat quarterly to catch new entries and changes |