Skip to content

Export every grid as CSV or XLSX - #138

Open
solverat wants to merge 7 commits into
1.xfrom
grid-export
Open

solverat wants to merge 7 commits into
1.xfrom
grid-export

Conversation

@solverat

@solverat solverat commented Oct 10, 2026 •

Copy link
Copy Markdown
Contributor

Every grid of the admin exports its rows through one export. This covers the object, asset, email log and translation grids. The editor picks CSV or XLSX, the header and the delimiter. In a grid with a checkbox column, the editor can export only the selected rows. When a filter of the grid is active, the admin asks whether the export holds only the filtered rows.

The export holds the rows that the grid shows, with its filters, its search and its sorting. The admin writes the export in batches and shows the progress in a window. Above opendxp_admin.grid_export.confirm_threshold rows, it asks before it starts.

OpenSpout writes both formats. A value that starts like a formula stays text. XLSX keeps numbers, dates and booleans as their types.

The export switches from PhpSpreadsheet to OpenSpout. OpenSpout suits an export better because it writes a file row by row. The admin bundle no longer uses phpoffice/phpspreadsheet. It stays in composer.json for backward compatibility and goes with 2.0.

A bundle adds a grid with a class that implements GridExportSourceInterface and carries #[AsGridExportSource]. GridExports::export() runs a grid export in a test.

The old export routes of the object, asset, email log and translation grids are removed.

Progress windows stay in the bottom right corner when the browser window is resized.

See Grid Export.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant