Tutorials

How to Export WPForms Entries to CSV

Exporting WPForms entries to a CSV file in WordPress

Getting your form submissions out of WordPress as a spreadsheet sounds like a thirty-second job. With WPForms it usually is, if you’re on a paid tier. On the free version it’s messier, and most tutorials gloss over the part where the entries you wanted may not exist at all. We build form and entry plugins for a living, so here’s the honest version.

First: does WPForms actually have your entries?

Settle this before anything else, because it decides which route below applies to you.

WPForms Lite, the free version on wordpress.org, is built around email notifications. When someone submits, it mails you the submission. Full entry management (a browsable table with search, filtering, per-entry views and a CSV export) is a paid-tier feature and always has been. Recent Lite releases add a stripped-down entries screen showing a limited amount of recent data, mostly as a preview of the paid feature. How much it retains and for how long has changed between versions, so rather than assert a number: go look at WPForms → Entries. A full searchable table with an Export button means a paid tier. A teaser screen, or nothing, means Lite.

The uncomfortable implication: run Lite for two years with no second storage method and the only complete record of those submissions is your email inbox. No plugin can retroactively create entries that were never written to the database. We say it bluntly because we’ve watched people spend an afternoon hunting an export button for data that isn’t there.

The built-in export (paid tiers)

On any paid license the export tool lives at WPForms → Tools → Export, and there’s an Export button on the Entries screen itself, faster when you’re already looking at one form. The flow is roughly:

  1. Pick the form you want to export from the dropdown.
  2. Tick which fields to include. It selects all of them by default, rarely what you want on a fifteen-field form.
  3. Optionally add the “additional information” columns: entry ID, date, user agent, IP address, user details.
  4. Set a date range if you only want a slice.
  5. Choose CSV (some versions also offer Excel) and download.

Two things worth knowing. The export runs on your server, so with tens of thousands of entries it can time out on cheap shared hosting; narrow the date range, export in chunks and stitch the files together. And it respects filters applied on the Entries screen, which is confusing when you forgot a search term was in the box and got 12 rows instead of 4,000.

When you only have Lite

Start from what WPForms itself says: “WPForms does not store entries without a paid license.” We checked the Lite code (version 2.0.1.1) as well. A Lite submission sends the notification email and keeps a running count per form, and that’s it: no entry rows are written to your database. So there is no export to find. What you can recover depends on what else was in place.

1. Lite Connect backups

If Enable Entry Backups was switched on under WPForms → Settings, WPForms has been copying submissions to its own servers. Per their documentation (updated 9 September 2026), each backup is kept for one year and is restored into your dashboard as normal entries only if you buy a paid licence. It covers entries from the day you turned it on, not before.

2. Old entries from a paid licence

If the site ran a paid WPForms licence at some point, the entries saved then are still in wp_wpforms_entries and wp_wpforms_entry_fields (your prefix may differ), unless the plugin was deleted with data removal on. In phpMyAdmin or Adminer:

SELECT entry_id, form_id, date, fields
FROM wp_wpforms_entries
WHERE form_id = 12
ORDER BY date DESC;

Use the tool’s Export tab for a CSV. The fields column comes out as JSON, one cell per submission, so plan to parse it. Back up the database first. Anything submitted after the site dropped to Lite won’t be there.

3. Your notification emails

For Lite-only periods, the inbox that received the notifications is the complete record. Most mail clients can export a folder, and a filter on the notification subject gets you most of the way to a spreadsheet.

Going forward: store entries somewhere

If you need entries kept from now on, there are three routes. Buy a paid WPForms licence (Basic, $49.50 for the first year and $99 after, as of 17 September 2026), which adds the entries screen and export. Add a free plugin that stores WPForms Lite submissions as they arrive (see below). Or build the form with a plugin whose free version stores entries, such as Fluent Forms, Formidable Lite or Trinity Forms. Our guide to storing and exporting WordPress form entries is the neutral overview.

Full disclosure, and a correction: we make EntryVault, which collects entries from 17 form plugins into one board with CSV export. An earlier version of this post said its free version covered WPForms Lite, and at the time it didn’t: EntryVault skipped any submission without a WPForms entry, which is every Lite submission. We fixed that in EntryVault 1.6.0 (17 September 2026). It now gives each Lite submission its own ID and stores it on your site, and we tested it with WPForms Lite 2.0.1.1 as a logged-out visitor. It keeps submissions from the day you install it and can’t bring back anything sent before.

What the CSV actually looks like, and where it bites

Every export has roughly this shape: one row per submission, one column per selected field, plus whatever metadata you enabled.

Column Contains Watch out for
Entry ID Sequential integer Not stable across a site migration
Date Submission timestamp Timezone (see below)
Name / Email / Text fields Plain text as typed Encoding, leading zeros
Checkboxes All ticked options in one cell Separator collides with your data
File upload A URL, not a file Link rot, public access

Excel mangles UTF-8

The export is UTF-8. Double-click it in Excel on Windows and accented characters, curly quotes and non-Latin scripts turn into mojibake, because Excel assumes the local ANSI codepage unless the file carries a byte-order mark. So don’t double-click. Open Excel, then Data → From Text/CSV, and set File Origin to UTF-8 in the preview. Sheets and LibreOffice get this right on import.

Leading zeros vanish

Postcodes like 01234, phone numbers and any reference starting with a zero get read as numbers and lose the zero. Same import dialog, same fix: mark those columns as Text before the data lands. Once you’ve imported and saved, the zeros are gone and you re-import from the original. Spreadsheet behaviour, not a WPForms bug, and it happens with every form plugin’s export.

Checkboxes collapse into one cell

Three ticked options export as one cell containing all three, joined by a separator (commonly a newline or a comma, depending on version and field type). Counting how many people picked each option means splitting that column afterwards, and if the separator is a comma and an option label contains one too, the split gets messy. Good argument for keeping commas out of checkbox labels.

An upload field exports the URL of the stored file, not the file. Delete the entries or clean the uploads directory later and the CSV points at nothing. And unless uploads are protected, those URLs are reachable by anyone holding the CSV, which matters when people upload ID documents or CVs. Download the files separately if the export is meant to be an archive.

The date column’s timezone

Timestamps are stored in UTC and rendered per your WordPress timezone setting (Settings → General). Whether the exported column is the local rendering or raw UTC has varied, so before building a report on it, submit a test entry and check what the CSV says. An unnoticed offset of a few hours quietly moves submissions across day boundaries.

Deactivating the plugin

Deactivating hides the admin screens but leaves the tables alone, so entries come back on reactivation. Uninstalling is the dangerous one: with “remove all data on uninstall” enabled, deleting the plugin drops the entry tables permanently. Export first, and back up the database too, because a CSV won’t restore into WPForms cleanly.

Which route should you pick?

Paid tier: use the built-in export, be selective about columns, and import via the Data tab rather than double-clicking.

Lite only: there’s nothing on your site to export. Check Lite Connect backups and your notification inbox, and look in the entries table only for anything saved while the site had a paid licence.

Lite and you’ll need entries from now on: add a storage plugin such as EntryVault Free, upgrade WPForms, or move the form to a plugin that stores entries in its free version. The same reasoning covers Gravity Forms and Contact Form 7, which has the no-storage-by-default problem in a sharper form.

Whichever route you take, do the boring thing: submit one test entry with an accented character, a leading zero, two checkboxes ticked and a file attached, then export it. That tells you more than any tutorial, ours included.

Frequently asked questions

Can I export WPForms entries without upgrading to a paid tier?

Not for Lite submissions, because WPForms Lite does not save entries to your database; its documentation says it does not store entries without a paid licence. If Lite Connect backups were enabled, WPForms keeps them for a year and restores them when you upgrade. Entries saved while the site had a paid licence are still in the wp_wpforms_entries table and can be exported with phpMyAdmin or Adminer.

Why do accented characters and postcodes break when I open the CSV in Excel?

Because Excel guesses. Double-clicking a UTF-8 file makes it assume your local codepage, which garbles accented and non-Latin characters, and it reads numeric-looking columns as numbers, stripping leading zeros from postcodes and phone numbers. Open Excel first, use Data then From Text/CSV, set the file origin to UTF-8 and mark those columns as Text before importing. Google Sheets and LibreOffice handle the encoding correctly on their own.

What happens to my entries if I deactivate or delete WPForms?

Deactivating only hides the admin screens. The plugin’s tables stay where they are and your entries reappear when you reactivate. Deleting is different: if the option to remove all data on uninstall is enabled, the entry tables are dropped permanently. Export a CSV and take a database backup before deleting anything, since a CSV cannot be imported back into WPForms cleanly.

Where is the WPForms export button?

On paid tiers it is at WPForms → Tools → Export, and there is also an Export button on the Entries screen itself, which is quicker when you are already looking at a form. One trap: the export respects any filters still applied on the Entries screen, so a forgotten search term is why you got 12 rows instead of 4,000.

Why do my checkbox answers all land in one spreadsheet cell?

Because that is how the export represents them — three ticked options become one cell joined by a separator, commonly a newline or a comma depending on version and field type. To count how many people picked each option you have to split that column afterwards, which gets messy if an option label contains a comma too. Keep commas out of checkbox labels.

Does a form export include the uploaded files?

No. An upload field exports the URL of the stored file, not the file itself. If the entries or the uploads directory are later cleaned out, the CSV points at nothing. And unless uploads are protected, those URLs are reachable by anyone holding the spreadsheet — which matters when people have uploaded CVs or ID documents. Download the files separately if the export is meant to be an archive.