slam / openspout-helper
PhpSpreadsheet 辅助工具,用于创建有组织的数据表
v2.3.0
2023-11-20 15:11 UTC
Requires
- php: ~8.2.0 || ~8.3.0
- openspout/openspout: ^4.21.0
Requires (Dev)
- infection/infection: ^0.27.8
- phpoffice/phpspreadsheet: ^1.29.0
- phpstan/phpstan: ^1.10.43
- phpstan/phpstan-phpunit: ^1.3.15
- phpunit/phpunit: ^10.4.2
- slam/php-cs-fixer-extensions: ^3.10
README
安装
composer require slam/openspout-helper
用法
use OpenSpout\Writer\Common\Creator\WriterEntityFactory; use Slam\OpenspoutHelper as ExcelHelper; require __DIR__ . '/vendor/autoload.php'; // Being an `iterable`, the data can be any dinamically generated content // for example a PDOStatement set on unbuffered query $users = [ [ 'column_1' => 'John', 'column_2' => '123.45', 'column_3' => '2017-05-08', ], [ 'column_1' => 'Mary', 'column_2' => '4321.09', 'column_3' => '2018-05-08', ], ]; $columnCollection = new ExcelHelper\ColumnCollection(...[ new ExcelHelper\Column('column_1', 'User', 10, new ExcelHelper\CellStyle\Text()), new ExcelHelper\Column('column_2', 'Amount', 15, new ExcelHelper\CellStyle\Amount()), new ExcelHelper\Column('column_3', 'Date', 15, new ExcelHelper\CellStyle\Date()), ]); $XLSXWriter = WriterEntityFactory::createXLSXWriter(); $XLSXWriter->openToFile(__DIR__.'/test.xlsx'); $activeSheet = $XLSXWriter->getCurrentSheet(); $activeSheet->setName('My Users'); $table = new ExcelHelper\Table($activeSheet, 'My Heading', $users); $table->setColumnCollection($columnCollection); (new ExcelHelper\TableWriter())->writeTable($XLSXWriter, $table); $XLSXWriter->close();
结果