How to Export Gravity Forms Data to Excel and PDF

Updated July 2026 • 6 min read • By Fahad Murtaza

TableCrafter table builder, connect Gravity Forms, Google Sheets, Airtable, CSV, or JSON data sources
TableCrafter table builder, connect Gravity Forms, Google Sheets, Airtable, CSV, or JSON data sources

Gravity Forms has a built-in CSV exporter, but it dumps every field in the form, for every entry, all at once. There is no way to export only the columns your table shows, or only the rows that match your current filters. TableCrafter's export feature gives you exactly that: export the visible, filtered data in the column order you configured, in CSV, XLSX, or JSON format. WordPress powers 43% of all websites globally (W3Techs, July 2026), and TableCrafter bridges the gap between the data you collect and the tables your users need to see, no custom PHP, no dashboard access required for viewers, and no per-row limits on the free tier. The free version on WordPress.org supports CSV, JSON, Google Sheets, and Excel. Pro adds Gravity Forms, Airtable, Notion, WooCommerce, REST APIs, inline cell editing, export to CSV and Excel, role-based column visibility, and auto-refresh. Every table embeds on any page with a [tablecrafter] shortcode or the native Gutenberg block.

How TableCrafter Export Differs from GF's Built-In Export?

Understanding the difference helps you decide when to use each tool:

Use GF's built-in export for full data archival or when you need fields that are not in your TableCrafter column configuration. Use TableCrafter's export for operational reporting on a curated, filtered subset of the data.

How Do I Enable the Export Button?

Open your table configuration under TableCrafter → Tables → [Your Table] → Edit. Scroll to Table Options → Export. Toggle Enable Export Button on. Pro The export feature is only available on TableCrafter Pro plans — it does not appear in free version table configurations.

After toggling on, choose which formats to make available: CSV, Excel (XLSX), and JSON can each be individually enabled or disabled. Then add the export parameter to your shortcode:

[tablecrafter id="1" export="true"]

The export button renders in the top-right corner of the table toolbar, above the search bar and filter row. When clicked, it shows a dropdown with the formats you enabled — visitors click the format they want and the file downloads immediately. The button label defaults to "Export" with a download icon; you can change the label text under Export → Button Label to match your site's language or terminology (e.g., "Download Data" or "Save as file").

The export button is visible only to users who meet the minimum role configured in the table's Access tab. If a visitor does not have that role, neither the table nor the export button appears for them.

How Do I Configure Export Formats?

Under Export > Formats, select which export formats to make available to your table visitors. TableCrafter supports three server-side formats: CSV (comma-separated values), Excel (XLSX), and JSON. You can enable one, two, or all three simultaneously. When multiple formats are enabled, the export button becomes a dropdown menu with one option per format; when only a single format is enabled, the button triggers that format directly with a single click, no dropdown required.

Each format has different strengths for different workflows. CSV is the most portable and opens in any spreadsheet application including Google Sheets and LibreOffice without conversion. Excel (XLSX) preserves cell formatting and produces a workbook ready for pivot tables, charts, and advanced analysis. JSON exports the raw data as a structured array keyed by column label, useful for developers who want to process table contents programmatically or feed the data into another system downstream.

The format selection in the admin panel controls what appears in the export dropdown on the frontend. It does not affect what users can access via the REST API or scheduled exports, which have their own format settings configured separately per table.

CSV Export

The CSV format is a plain UTF-8 encoded comma-separated values file. It opens in Excel, Google Sheets, LibreOffice Calc, and any other spreadsheet application. Column headers in the first row match your configured column labels (not the original GF field labels, unless you have not changed them). Date values are formatted according to your TableCrafter > Settings > Display > Date Format setting.

CSV is the right choice when the data will be imported into another system (CRM, analytics tool, database) or when the recipient may not have Excel.

XLSX Export

The XLSX format produces a proper Excel workbook using the PhpSpreadsheet library. TableCrafter applies basic formatting: the header row is bold with a light gray fill (hex #E9ECEF), and all column widths are auto-sized using PhpSpreadsheet's setAutoSize(true) so content is not truncated. The sheet title is set to "Table Export". Numeric cell values are written using TC_Excel_Float_Service to preserve floating-point precision and prevent Excel from misinterpreting decimal numbers as dates.

Column order in the XLSX file follows your configured column sequence. Hidden columns and export-excluded columns are omitted. The resulting file opens natively in Excel, LibreOffice Calc, and Google Sheets (via import). XLSX is the right choice when recipients need to sort, filter, or build pivot tables on the exported data without re-importing a CSV.

PDF Export

TableCrafter does not generate server-side PDFs. There is no PDF option in the export format list. To save a table view as a PDF, use the browser's built-in print-to-PDF function:

  1. Open the page containing your table.
  2. Remove pagination or set a high per-page count so all rows are visible at once (pagination cut-off is the most common cause of incomplete PDFs).
  3. Press Ctrl+P (Windows/Linux) or Cmd+P (macOS) to open the print dialog.
  4. Set the destination to Save as PDF.
  5. In "More settings," enable Background graphics to preserve cell background colors such as status badge colors.
  6. Adjust orientation (Landscape is usually better for wide tables) and click Save.
Best print results: Apply your desired filters in the table first, then trigger the browser print dialog. The resulting PDF captures exactly what is displayed, including active search and filter state. Status badge colors and data bar fills are preserved when background graphics are enabled.

What Is Export Scope: Filtered Rows vs. All Rows?

This is the most operationally important export setting. Under Export > Scope, choose between:

Most teams should use "Filtered rows only." The "All matching entries" option is useful when you want a full-data download regardless of what the current user has filtered in the browser.

How Does Controlling Which Columns Appear in the Export Work?

By default, every visible column in the table is included in the export. To exclude specific columns from the export while keeping them visible in the table, go to the column card's Display tab and toggle off Include in Export.

Common columns to exclude from exports:

You can also add columns to the export that are hidden from the table display. Set a column's visibility to Export Only in the Display tab. This column does not render in the browser table but appears in the downloaded file, useful for including a unique identifier or internal code that table viewers do not need to see.

How Does Export Permissions Control Who Can Download?

Under Export > Permissions, specify which WordPress roles can trigger an export. The export button is only rendered for users whose role meets the minimum requirement. Roles below the threshold do not see the button at all. Attempting to call the export AJAX endpoint directly without the appropriate role returns a 403 forbidden response, so the restriction is server-enforced, not just hidden in the UI.

A typical configuration: Subscribers see no export button (they view only their own entries and cannot bulk-download the full dataset). Editors and Administrators see the export button and can download filtered results to share with stakeholders outside the WordPress system.

The permission check runs the same role verification used by the rest of the TableCrafter access system. If you have configured a custom minimum viewing role for the table under the Access tab, set the export permission to at least that same role. Setting the export permission lower than the table's view permission has no practical effect, since users who cannot view the table never reach the export button. The recommended pattern is to match export permissions to view permissions and then tighten export-only access independently if your use case requires it.

How Does Export Filename Template Work?

Under Export → Filename, set a filename pattern using tokens resolved by TC_Export_Filename_Service. The supported tokens are:

An example template: {table_name}-{YYYY-MM-DD} produces a filename like support-tickets-2026-07-06.csv. The file extension is appended automatically based on the format selected at download time, so the same pattern applies to CSV, XLSX, and JSON exports from the same table.

Unknown tokens pass through verbatim rather than being stripped, so a typo like {tablename} (without the underscore) will appear literally in the filename. If no pattern is configured, the default is {table_name}-{YYYY-MM-DD}.csv.

What Are the Next Steps?

Your Gravity Forms data is now exportable in the format your team actually uses, filtered to exactly the rows that matter. If you are building a full admin tool, combine the export feature with inline editing so team members can update entry statuses and then export the updated dataset in one workflow, all without leaving the frontend table page.

For recurring delivery to stakeholders who do not log into WordPress, set up a scheduled export. TableCrafter's scheduled export feature runs on WP-Cron and writes the table's current data to a file in wp-content/uploads/gravity-tables-exports/ on a configurable cadence: hourly, every 6 hours, daily, or weekly. Recipients listed in the configuration receive the file by email with each run. This removes the need for any manual export step in an operational workflow.

For tables that need fine-grained control over who can see which rows or columns, review the role-based access guide. Combining export permissions with column-level visibility controls ensures that when a user downloads the table, the exported file contains only the columns and rows their role is authorized to see. This is the recommended approach for tables that are shared across multiple teams with different data access levels.

Frequently Asked Questions

How Does How TableCrafter Export Differs from GF's Built-In Export Work?

Understanding the difference helps you decide when to use each tool:

What Is TableCrafter?

TableCrafter is a WordPress plugin that turns data from Gravity Forms, Google Sheets, Airtable, Notion, REST APIs, CSV files, and WooCommerce into interactive, sortable, filterable frontend tables. Embed any table on any WordPress page with the [tablecrafter] shortcode or the native Gutenberg block. No PHP or custom development required. The free version supports CSV, JSON, Google Sheets, and Excel. Pro adds Gravity Forms, Airtable, Notion, WooCommerce, REST APIs, inline cell editing, export to CSV and Excel, role-based column visibility, and auto-refresh.

Does this require PHP or developer skills?

No. TableCrafter is configured entirely through the WordPress admin interface. You choose your data source, map fields to columns, and set display preferences using point-and-click controls. Embedding uses the [tablecrafter] shortcode or the native Gutenberg block.

Is the free version sufficient or do I need Pro?

The free plugin on WordPress.org supports CSV, JSON, Google Sheets, and Excel sources with unlimited tables, rows, and columns. Pro adds Gravity Forms, Airtable, Notion, WooCommerce, REST API sources, inline cell editing, bulk row actions, export to CSV and Excel, role-based column visibility, and auto-refresh every N seconds.

Ready to try it?

TableCrafter is free on WordPress.org. Pro unlocks inline editing, role-based permissions, and advanced data sources.