Lightweight Exporter library

2.7.0 2021-06-27 13:47 UTC


Data Exporter is a lightweight library to export data into different formats.

Latest Stable Version Latest Unstable Version License

Total Downloads Monthly Downloads Daily Downloads

Branch Github Actions Coverage
2.x Test Coverage Status
master Test Coverage Status

Installation using Composer

composer require sonata-project/exporter




use Exporter\Handler;
use Exporter\Source\PDOStatementSourceIterator;
use Exporter\Writer\CsvWriter;

// Prepare the data source
$dbh = new \PDO('sqlite:foo.db');
$stm = $dbh->prepare('SELECT id, username, email FROM user');

$source = new PDOStatementSourceIterator($stm);

// Prepare the writer
$writer = new CsvWriter('data.csv');

// Export the data
Handler::create($source, $writer)->export();

Symfony bridge

You can directly return an export as a streamed response like this:

final class InvoicesExport
     * @Route("/invoices", name="invoices_export")
    public function __invoke(Request $request, Exporter $exporter): Response
        $invoices = $this->getMyInvoices();
        $format = $request->getRequestFormat();
        return $exporter->getResponse(
            new ArraySourceIterator($invoices)



For general support and questions, please use StackOverflow.

If you think you found a bug or you have a feature idea to propose, feel free to open an issue after looking at the contributing guide.


This package is available under the MIT license.