PHPackages                             chervand/yii-excel - 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. [Utility &amp; Helpers](/categories/utility)
4. /
5. chervand/yii-excel

ActiveYii-extension[Utility &amp; Helpers](/categories/utility)

chervand/yii-excel
==================

PHPExcel wrapper for Yii Framework with support for data providers and models

056PHP

Since Apr 14Pushed 10y ago1 watchersCompare

[ Source](https://github.com/chervand/yii-excel)[ Packagist](https://packagist.org/packages/chervand/yii-excel)[ RSS](/packages/chervand-yii-excel/feed)WikiDiscussions master Synced today

READMEChangelogDependenciesVersions (1)Used By (0)

[PHPExcel](https://github.com/PHPOffice/PHPExcel) wrapper for [Yii Framework](https://github.com/yiisoft/yii)
=============================================================================================================

[](#phpexcel-wrapper-for-yii-framework)

It supports export for IDataProvider objects, array of models and raw data arrays to .xls, .xlsx, .html and .csv formats.

Export
------

[](#export)

### Usage

[](#usage)

```
    (new Excel)
        ->worksheet('Worksheet #1', [['col1', 'col2'], ['cell11', 'cell12'], ['cell21', 'cell22']],
            function (\PHPExcel_Worksheet $worksheet, array $data) {
                $worksheet->fromArray($data);
            }
        )
        ->worksheet('Worksheet #2', new \CActiveDataProvider('User'))
        ->export('/tmp/', 'export.xlsx');
```

### Output

[](#output)

`export()` has 2 optional arguments:

- save path without filename, defaults to `php://output`
- filename with extension, defaults to `Export_{timestamp}.csv`

```
    (new Excel)
        ->worksheet('Worksheet #1', new \CActiveDataProvider('User'))
        ->export('/tmp/', 'export.xlsx');
```

Supported formats:

- BIFF 8 (`.xls`) Excel 95 and above
- Office Open XML (`.xlsx`) Excel 2007 and above
- HTML (`.html`)
- CSV (`.csv`)

### Worksheets

[](#worksheets)

To add a sheet to the workbook call `worksheet()` with arguments:

- worksheet title, required
- data to be exported, which could be a CActiveDataProvider, CArrayDataProvider, array of models or a raw data array
- callback for custom configuration of PHPExcel\_Worksheet object (see [PHPExcel](https://github.com/PHPOffice/PHPExcel) documentation), params:
    - PHPExcel\_Worksheet object
    - variable passed as data to `worksheet()`

### Complete example

[](#complete-example)

```
    $arrayOfValues = [['col1', 'col2'], ['item11', 'item12'], ['item21', 'item22']];
    $arrayOfModels = \CActiveRecord::model($this->modelClass)->findAll();
    $isExported = (new \Excel)
        ->worksheet('Array of values', $arrayOfValues)
        ->worksheet('Array of values + callback', $arrayOfValues,
            function (\PHPExcel_Worksheet $worksheet, array $data) {
                $worksheet->fromArray($data);
            }
        )
        ->worksheet('Array of models', $arrayOfModels)
        ->worksheet('Array of models + callback', $arrayOfModels,
            function (\PHPExcel_Worksheet $worksheet, array $data) {
                $_data = [];
                foreach ($data as $model) {
                    if ($model instanceof \CActiveRecord) {
                        $_data[] = $model->getAttributes();
                    }
                }
                $worksheet->fromArray($_data);
            }
        )
        ->worksheet('CArrayDataProvider of raw data', new \CArrayDataProvider($arrayOfValues))
        ->worksheet('CArrayDataProvider of models', new \CArrayDataProvider($arrayOfModels))
        ->worksheet('CActiveDataProvider + callback', new \CActiveDataProvider($this->modelClass),
            function (\PHPExcel_Worksheet $worksheet, \CActiveDataProvider $dataProvider) {
                $_data[] = $dataProvider->model->attributeNames();
                foreach ($dataProvider->getData() as $model) {
                    if ($model instanceof \CActiveRecord) {
                        $_data[] = $model->getAttributes();
                    }
                }
                $worksheet->fromArray($_data);
            }
        )
        ->export('worksheets.xlsx', $this->savePath);
```

See `tests` for more examples.

###  Health Score

21

—

LowBetter than 18% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity8

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity41

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% 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.

### Community

Maintainers

![](https://www.gravatar.com/avatar/765117f2c9121f6f8cf4c8565f2bda0df8b7bbfb929660f9d94c1715b77e3820?d=identicon)[chervand](/maintainers/chervand)

---

Top Contributors

[![chervand](https://avatars.githubusercontent.com/u/450972?v=4)](https://github.com/chervand "chervand (9 commits)")

### Embed Badge

![Health badge](/badges/chervand-yii-excel/health.svg)

```
[![Health](https://phpackages.com/badges/chervand-yii-excel/health.svg)](https://phpackages.com/packages/chervand-yii-excel)
```

PHPackages © 2026

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