zsardarov / php-excel-exporter
A library that provides a way to easily export report data to excel
v1.0.1
2020-09-09 18:13 UTC
Requires
- box/spout: ^3.1
- symfony/http-foundation: ~2.7|~3.0|~4.0|~5.0
Requires (Dev)
- phpunit/phpunit: ^8
This package is auto-updated.
Last update: 2024-04-18 01:22:07 UTC
README
A package for exporting your reports from Database (or any other source) to Excel (.xlsx).
Installation
Install this package via Composer:
$ composer require zsardarov/php-excel-exporter
Basic Usage
Firstly create the factory. Pass the heading row and exportable data to it. After all the response can be sent to client. Example:
use Zsardarov\ExcelExporter\ExcelResponseFactory; $heading = ['id', 'title', 'content']; $exportable = [ [1, 'Lorem', 'ipsum'], [2, 'Sample', 'data'] ]; $factory = new ExcelResponseFactory(); return $factory->setHeadingRow($heading) ->createFrom($exportable) ->send();
Custom Factories
Also, you may extend basic functionality by creating custom factories. For this purpose you must inherit your factory from BaseExcelFactory class
. Example:
use Box\Spout\Writer\Common\Creator\WriterEntityFactory; use Box\Spout\Writer\XLSX\Writer; use Zsardarov\ExcelExporter\BaseExcelResponseFactory; class CustomExcelResponseFactory extends BaseExcelResponseFactory { protected function getHeadingRow(): ?array { return [ 'id', 'category', 'value', 'date' ]; } protected function contentWriter(Writer $writer, iterable $exportable): void { foreach ($exportable as $item) { $cells = [ $item->id, $item->category, $item->value, $item->date ]; $row = WriterEntityFactory::createRowFromArray($cells); $writer->addRow($row); } } }
use App\Models\Report; use App\Services\CustomExcelResponseFactory; class SampleController extends Controller { public function export() { $exportable = Report::all(); $factory = new CustomExcelResponseFactory(); return $factory->createFrom($exportable, 'report.xlsx'); } }