PHPackages                             sujan/php-csv-exporter - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [PDF &amp; Document Generation](/categories/documents)
4. /
5. sujan/php-csv-exporter

ActiveLibrary[PDF &amp; Document Generation](/categories/documents)

sujan/php-csv-exporter
======================

A PHP library to export data to CSV

v2.1.2(3y ago)1937.0k↓33.3%5[1 issues](https://github.com/sujancse/php-csv-exporter/issues)MITPHPPHP &gt;=5.5.0

Since Jan 15Pushed 3y ago1 watchersCompare

[ Source](https://github.com/sujancse/php-csv-exporter)[ Packagist](https://packagist.org/packages/sujan/php-csv-exporter)[ RSS](/packages/sujan-php-csv-exporter/feed)WikiDiscussions master Synced 1mo ago

READMEChangelog (7)DependenciesVersions (9)Used By (0)

[![Packagist Version](https://camo.githubusercontent.com/6db2903e7ab656441c300206cb2fb5c8d1fb773fe29821e88999b20bff554496/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f73756a616e2f7068702d6373762d6578706f72746572)](https://camo.githubusercontent.com/6db2903e7ab656441c300206cb2fb5c8d1fb773fe29821e88999b20bff554496/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f73756a616e2f7068702d6373762d6578706f72746572)[![Packagist](https://camo.githubusercontent.com/bf0c359b27eb40ae53a6a43950c5d32b82f10e25bb283f30dd3129eb8468c76f/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f73756a616e2f7068702d6373762d6578706f727465723f636f6c6f723d677265656e)](https://camo.githubusercontent.com/bf0c359b27eb40ae53a6a43950c5d32b82f10e25bb283f30dd3129eb8468c76f/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f73756a616e2f7068702d6373762d6578706f727465723f636f6c6f723d677265656e)[![GitHub](https://camo.githubusercontent.com/921eaa992b38920ddeb9f0e47cd7d6c1a8ae7334cb625544d0a1b13bf902e0d6/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6c6963656e73652f73756a616e6373652f7068702d6373762d6578706f727465723f636f6c6f723d79656c6c6f77)](https://camo.githubusercontent.com/921eaa992b38920ddeb9f0e47cd7d6c1a8ae7334cb625544d0a1b13bf902e0d6/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6c6963656e73652f73756a616e6373652f7068702d6373762d6578706f727465723f636f6c6f723d79656c6c6f77)

Overview
--------

[](#overview)

A fast and tiny PHP library to export data to CSV. The library is based on a PHP generator.

Why Use
-------

[](#why-use)

It took me 5 seconds to export 5M data so you can call it fast enough. And because of the use of [Generator](https://www.php.net/manual/en/language.generators.overview.php) it uses less memory and never get caught by memory exception.

### Installation

[](#installation)

```
composer require sujan/php-csv-exporter

```

Basic Usage
-----------

[](#basic-usage)

```
$columns = [ 'id', 'name', 'email' ];

$queryBuilder = User::limit(10); // Query Builder

$exporter = new Exporter();
$exporter->build($queryBuilder, $columns, 'users.csv')
         ->export();

```

Build and export, that much simple.

Documentation
-------------

[](#documentation)

- [Build CSV](#build-csv)
- [Export CSV](#export-csv)
- [Usage Examples](#usage-examples)
    - [Laravel](#laravel)
        - [From Eloquent Query Builder (RECOMMENDED)](#from-eloquent-query-builder-recommended)
        - [From Collection](#from-collection)
        - [From Array](#from-array)
        - [Eloquent Relation](#eloquent-relation)
    - [RAW PHP](#raw-php)
        - [From Array](#from-plain-array)
        - [From PDOStatement (RECOMMENDED)](#from-pdostatement-recommended)

### Build CSV

[](#build-csv)

CSV build takes three parameters. First one is the model which could be `Array`, `PDOStatement`, `Eloquent Query Builder` and `Collection`, seconds one takes the field names you want to export, third one is CSV filename.

```
$exporter->build($queryBuilder, $columns, 'users.csv');

```

### Export CSV

[](#export-csv)

```
$exporter->export();

```

Usage Examples
--------------

[](#usage-examples)

### Laravel

[](#laravel)

You can export data from `Eloquent Query Builder`, `Collection` and `Array` whereas `Eloquent Query Builder` is highly recommended.

#### From Eloquent Query Builder (RECOMMENDED)

[](#from-eloquent-query-builder-recommended)

```
$columns = [ 'id', 'name', 'email' ];

$queryBuilder = User::latest()->whereNotNull('email_verified_at'); // Query Builder

$exporter = new Exporter();
$exporter->build($queryBuilder, $columns, 'users.csv')
         ->export();

```

#### From Collection

[](#from-collection)

```
$columns = [ 'id', 'name', 'email' ];

$collection = User::latest()->get(); // Collection

$exporter = new Exporter();
$exporter->build($collection, $columns, 'users.csv')
         ->export();

```

#### From Array

[](#from-array)

```
$columns = [ 'id', 'name', 'email' ];

$usersArray = User::latest()->get()->toArray(); // Array of Users

$exporter = new Exporter();
$exporter->build($usersArray, $columns, 'users.csv')
         ->export();

```

#### Eloquent Relation

[](#eloquent-relation)

```
$columns = [
    'id',
    'title',
    'user' => [ // user is a relation
        'name'
    ]
];

$queryBuilder = Post::with('user'); // Query builder

$exporter = new Exporter();
$exporter->build($queryBuilder, $columns, 'users.csv')
         ->export();

```

### Raw PHP

[](#raw-php)

The library supports Laravel as well as raw PHP. You can easily export data from `PDOStatement` and `Array`.

#### From Plain Array

[](#from-plain-array)

```
$array = [
    ['id' => 1, 'name' => 'John Doe', 'email' => 'john@example.com'],
    ['id' => 2, 'name' => 'Jane Doe', 'email' => 'jane@example.com']
];

$columns = ['id', 'name', 'email'];

$exporter = new Exporter();
$exporter->build($array, $columns, 'users.csv')
         ->export();

```

#### From PDOStatement (RECOMMENDED)

[](#from-pdostatement-recommended)

```
    $servername = "localhost";
    $username = "root";
    $password = "password";
    $dbname = "laravel";

    $columns = [
        'id',
        'name',
        'email'
    ];

    try {
        $conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
        $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
        $stmt = $conn->prepare("SELECT id, name, email FROM users");
        $stmt->execute();

        // set the resulting array to associative
        $stmt->setFetchMode(PDO::FETCH_ASSOC);

        $exporter = new Exporter();
        $exporter->build($stmt, $columns, 'users.csv)
                 ->export();
    }
    catch(PDOException $e) {
        echo "Error: " . $e->getMessage();
    }
    $conn = null;

```

You are always welcome to contribute
------------------------------------

[](#you-are-always-welcome-to-contribute)

###  Health Score

34

—

LowBetter than 77% of packages

Maintenance19

Infrequent updates — may be unmaintained

Popularity36

Limited adoption so far

Community12

Small or concentrated contributor base

Maturity57

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 96.7% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~255 days

Total

5

Last Release

1296d ago

Major Versions

v1.1.0 → v2.1.02020-01-23

PHP version history (4 changes)v1.1.0PHP ^5.5

v2.1.0PHP ^7.2

v2.1.1PHP ^8.0.2

v2.1.2PHP &gt;=5.5.0

### Community

Maintainers

![](https://www.gravatar.com/avatar/8064585474e68eebf68ebf93a396e0530bdc9f67799c07594b63f10fb340aeb6?d=identicon)[sujancse](/maintainers/sujancse)

---

Top Contributors

[![sujancse](https://avatars.githubusercontent.com/u/16623485?v=4)](https://github.com/sujancse "sujancse (29 commits)")[![NicolasCARPi](https://avatars.githubusercontent.com/u/3043706?v=4)](https://github.com/NicolasCARPi "NicolasCARPi (1 commits)")

---

Tags

csvcsv-exporter-based-on-generatorexportexport-csvfileexport-to-excelexport-without-memory-exceptionexporterfast-csv-exporterlaravel-csv-exportphp-export-to-csvphp-xlsxseamless-exportxlsx

### Embed Badge

![Health badge](/badges/sujan-php-csv-exporter/health.svg)

```
[![Health](https://phpackages.com/badges/sujan-php-csv-exporter/health.svg)](https://phpackages.com/packages/sujan-php-csv-exporter)
```

###  Alternatives

[spatie/browsershot

Convert a webpage to an image or pdf using headless Chrome

5.2k32.1M102](/packages/spatie-browsershot)[barryvdh/laravel-snappy

Snappy PDF/Image for Laravel

2.8k24.8M48](/packages/barryvdh-laravel-snappy)[openspout/openspout

PHP Library to read and write spreadsheet files (CSV, XLSX and ODS), in a fast and scalable way

1.2k57.6M131](/packages/openspout-openspout)[keboola/csv

Keboola CSV reader and writer

1451.8M21](/packages/keboola-csv)[setasign/tfpdf

This class is a modified version of FPDF that adds UTF-8 support. The latest version is based on FPDF 1.85.

426.1M30](/packages/setasign-tfpdf)[aspera/xlsx-reader

Spreadsheet reader library for XLSX files

52742.2k5](/packages/aspera-xlsx-reader)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
