2017 © Pedro Peláez
 

yii-extension yii-excel

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

image

chervand/yii-excel

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

  • Thursday, April 14, 2016
  • by chervand
  • Repository
  • 1 Watchers
  • 0 Stars
  • 49 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 0 Forks
  • 0 Open issues
  • 1 Versions
  • 2 % Grown

The README.md

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., (*1)

Export

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

export() has 2 optional arguments:, (*2)

  • 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:, (*3)

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

Worksheets

To add a sheet to the workbook call worksheet() with arguments:, (*4)

  • 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 documentation), params:
    • PHPExcel_Worksheet object
    • variable passed as data to worksheet()

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., (*5)

The Versions

14/04 2016

dev-master

9999999-dev

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

  Sources   Download

The Requires

 

The Development Requires

csv excel xls yii export