gri3li/yii2-grid-file

This Yii2 extension provides ability to export data form data provider to format supported by PhpSpreadsheet

Installs: 783

Dependents: 0

Suggesters: 0

Security: 0

Stars: 2

Watchers: 1

Forks: 1

Open Issues: 0

Type:yii2-extension

v1.3 2024-04-05 22:22 UTC

This package is not auto-updated.

Last update: 2024-05-31 23:33:26 UTC


README

This Yii2 extension provides ability to export data form data provider to format supported by PhpSpreadsheet

Installation

The preferred way to install this extension is through composer.

Either run

composer require --prefer-dist gri3li/yii2-grid-file

or add

"gri3li/yii2-grid-file": "*"

to the require section of your composer.json.

Usage

$export = new \gri3li\yii2gridfile\GridFile([
   'dataProvider' => new \yii\data\ArrayDataProvider([
       'allModels' => [
           [
               'name' => 'some name',
               'date' => 1538571363,
           ],
           [
               'name' => 'name 2',
               'date' => 1538571363,
           ],
       ],
   ]),
   'columns' => [
       'name',
       'date:datetime',
   ],
   'headerCellStyle' => [
       'font' => ['bold' => true],
       'fill' => [
           'fillType' => \PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID,
           'startColor' => ['rgb' => 'CCCCCC'],
       ],
   ],
]);
$export->saveAs(\PhpOffice\PhpSpreadsheet\Writer\Xls::class, '/path/to/file.xls');

// $export->saveAs(\PhpOffice\PhpSpreadsheet\Writer\Xlsx::class, '/path/to/file.xlsx');
// $export->saveAs(\PhpOffice\PhpSpreadsheet\Writer\Ods::class, '/path/to/file.ods');
// $export->saveAs(\PhpOffice\PhpSpreadsheet\Writer\Html::class, '/path/to/file.html');
// $export->saveAs(\PhpOffice\PhpSpreadsheet\Writer\Csv::class, '/path/to/file.csv');

More info about phpspreadsheet style https://phpspreadsheet.readthedocs.io/en/develop/topics/recipes/#styles

Use case https://github.com/gri3li/yii2-grid-file/tree/master/example

For run use case:

cd vendor/gri3li/yii2-grid-file/example/
php -S 127.0.0.1:8877

open http://127.0.0.1:8877