How to Bulk Export Selected Rows from a WordPress Table

Updated July 2026 • 6 min read • By Fahad Murtaza • By Fahad Murtaza

TableCrafter inline spreadsheet-style editing on the frontend, click any cell to edit
TableCrafter inline spreadsheet-style editing on the frontend, click any cell to edit

Exporting exactly the rows you want, not an entire dataset, saves time and keeps shared reports clean. TableCrafter's bulk export feature lets you check off specific rows in any frontend table and download just those records as CSV, Excel, or PDF, all without leaving the page or touching the WordPress admin. 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. 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/PDF, role-based column visibility, and auto-refresh. Every table embeds on any page with a [tablecrafter] shortcode or the native Gutenberg block. WordPress sites with interactive tables see 31% longer average session durations (Semrush, 2024).

What You Need Before You Start?

Bulk export of selected rows is a Pro feature. The free tier on WordPress.org supports read-only display, basic search, sort, and pagination across any number of rows and columns, but bulk actions, including export, require a Pro license.

Before following the steps below, confirm you have:

Note: If you are on the free tier and the checkbox column is not visible on the frontend, that is expected. Upgrade to Pro to unlock bulk actions.

How Do I Enable Bulk Actions on a Table?

Bulk actions are configured per-table inside the table builder, not globally. Open the builder by navigating to TableCrafter → Tables, then clicking Edit on the table you want to update.

Inside the builder, locate the Bulk Actions tab or section. You will see checkboxes for each available bulk operation:

Check the export formats you want to offer, then click Save Table. Once saved, a checkbox column automatically appears as the first column in the frontend table, and a toolbar with the enabled actions appears above or below the table depending on your theme layout.

Tip: You can enable multiple export formats simultaneously. Users will see a dropdown on the export button letting them choose CSV, Excel, or PDF at the time of export.

How Do Selecting Rows and Triggering the Export Work?

On the frontend page where your table is embedded, each row now starts with a checkbox. The workflow is straightforward:

  1. Use the search bar, column filters, or advanced filters to narrow the visible rows to the set you care about.
  2. Check individual row checkboxes, or click the Select All checkbox in the header to select every visible row on the current page.
  3. If your table spans multiple pages and you want rows from all pages, use the Select All Matching option that appears in the toolbar after a header-checkbox click, this tells TableCrafter to include every row matching the current filter state, not just the current page.
  4. Click the Export button in the bulk-actions toolbar and choose your format.

TableCrafter fires an AJAX request to wp-admin/admin-ajax.php with the selected entry IDs, the table ID, and a nonce token. The server validates the nonce and the user's capability before building the export file. The resulting file is streamed directly to the browser as a download, nothing is written to disk on the server.

Security: Every bulk export request is nonce-validated and capability-checked server-side. Users can only export rows from tables they have permission to view, enforced by TableCrafter's role-based permission system.

What Is Controlling Who Can Export: Role-Based Permissions?

Pro TableCrafter's permission system operates at two levels, table-level and column-level, both configured inside the table builder.

Table-level permissions determine which WordPress roles can see the table at all. If a role cannot view the table, the shortcode renders nothing for users in that role, and they cannot trigger any export.

Column-level permissions control which columns appear in the exported file. If a column is hidden for a given role, it is excluded from that role's export output server-side, not just hidden in the UI. This means a manager role can export a full dataset including a salary column while a staff role exports the same rows but without that column.

To configure permissions, open the table builder and go to the Permissions tab. Assign roles to the View, Edit, and Export capability tiers. For column restrictions, switch to the Columns tab and set per-column role visibility on any column you want to protect.

// Example shortcode on a members-only page
[tablecrafter id="12"]

// TableCrafter handles role checks automatically --
// no additional shortcode attributes needed for permissions.

How Do I Export Filtered Results vs. Hand-Picked Rows?

There are two common export patterns in TableCrafter, and it helps to understand which one you are using:

Pattern 1, Export all filtered rows. Apply your column filters or advanced filters, then use Select All Matching before exporting. This exports every row that matches the active filter state, even across pagination pages. This is efficient for recurring report workflows: bookmark the page with filter parameters in the URL and the next person who opens it can export the same scoped dataset in two clicks.

Pattern 2, Hand-pick rows. Scroll through the table and manually check individual rows regardless of how they are filtered. This is useful when the rows you need do not share a clean filter predicate, for example, picking three specific job submissions from a mixed list.

Both patterns use the same export button. TableCrafter determines whether to use the explicit selection list or the full filter-matched set based on whether Select All Matching was activated.

Performance: For very large datasets (thousands of rows), exporting via Select All Matching is more efficient than checking thousands of individual checkboxes. TableCrafter passes the filter parameters to the server and re-queries the data source rather than sending a large list of IDs.

How Do Export Format Details and Customization Work?

Each export format has slightly different characteristics worth knowing:

Column labels in all export formats come from the Label field you set on each column inside the table builder. If you want the export header to read "Customer Name" rather than "input_3", set that label in the builder before exporting. Status badge display values (the human-readable text mapped from raw values) are exported as their display text, not the underlying raw value.

Data Bars: The inline bar chart visualization rendered by the Data Bars feature is a UI-only display. Exported files contain the raw numeric value for those cells, not a bar graphic.

Frequently Asked Questions

How Does What You Need Before You Start Work?

Bulk export of selected rows is a Pro feature. The free tier on WordPress.org supports read-only display, basic search, sort, and pagination across any number of rows and columns, but bulk actions, including export, require a Pro license.

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 PDF, 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 PDF, 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.