zsardarov / php-excel-exporter
一个库,提供了一种轻松将报表数据导出到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-09-18 02:16:22 UTC
README
一个包,可以将您的数据库(或任何其他来源)报告导出到Excel (.xlsx)。
安装
通过Composer安装此包
$ composer require zsardarov/php-excel-exporter
基本用法
首先创建工厂。将标题行和可导出数据传递给它。之后可以将所有响应发送给客户端。示例
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();
自定义工厂
此外,您还可以通过创建自定义工厂来扩展基本功能。为此,您必须从 BaseExcelFactory 类
继承您的工厂。示例
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'); } }