slam / openspout-helper
PhpSpreadsheet helper to create organized data table
                                    Fund package maintenance!
                                                                            
                                                                                                                                        Slamdunk
                                                                                    
                                                                            
                                                                                                                                        paypal.me/filippotessarotto
                                                                                    
                                                                
Installs: 14 190
Dependents: 0
Suggesters: 0
Security: 0
Stars: 6
Watchers: 1
Forks: 1
Open Issues: 1
pkg:composer/slam/openspout-helper
Requires
- php: ~8.4.0 || ~8.5.0
- openspout/openspout: ^4.32.0
Requires (Dev)
- infection/infection: ^0.31.7
- phpoffice/phpspreadsheet: ^5.1.0
- phpstan/phpstan: ^2.1.31
- phpstan/phpstan-phpunit: ^2.0.7
- phpunit/phpunit: ^12.4.1
- slam/php-cs-fixer-extensions: ^3.14.0
README
Installation
composer require slam/openspout-helper
Usage
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();
Result:
