slam/openspout-helper

PhpSpreadsheet helper to create organized data table

Maintainers

👁 Slam

Package info

github.com/Slamdunk/openspout-helper

pkg:composer/slam/openspout-helper

Statistics

Installs: 16 398

Dependents: 0

Suggesters: 0

Stars: 9

Open Issues: 2

v3.0.0 2025-12-01 09:27 UTC

Requires

Suggests

None

Provides

None

Conflicts

None

Replaces

None

MIT 7636776714db42fd7e9bc71f4008c7d2983fee9e

  • Filippo Tessarotto <zoeslam.woop@gmail.com>

README

👁 Latest Stable Version
👁 Downloads
👁 CI
👁 Infection MSI

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:

👁 Example