Developer
Table of contents
While the spreadsheet is generated, the extension dispatches three
PSR-14 events that let you shape the output without replacing the
writer. All three live in the namespace
\Calien\ and are dispatched by
\Calien\. Register a listener with the
\TYPO3\ attribute.
AlternateFirstColumnInSheetEvent
Dispatched once, before anything is written, to decide the first spreadsheet column the header and
rows start in. The default is A. Use it to leave room for a logo or leading columns your own
listener fills.
- Mutable
-
yes, via
setFirst Column (string $first Column)
<?php
declare(strict_types=1);
namespace MyVendor\MyExtension\EventListener;
use Calien\Xlsexport\Event\Export\AlternateFirstColumnInSheetEvent;
use TYPO3\CMS\Core\Attribute\AsEventListener;
final class MoveExportStart
{
#[AsEventListener]
public function __invoke(AlternateFirstColumnInSheetEvent $event): void
{
$event->setFirstColumn('B');
}
}
AlternateHeaderLineEvent
Dispatched before the header row is written, carrying the field labels from fieldLabels
and the export key. Use it to translate, reorder or extend the column headers.
- Mutable
-
yes, via
setHeader Field Labels (array $header Field Labels) - Read
-
get,Header Field Labels () get(the export key)Configuration ()
#[AsEventListener]
public function __invoke(AlternateHeaderLineEvent $event): void
{
if ($event->getConfiguration() === 'orders') {
$event->setHeaderFieldLabels(['#', 'Order number', 'Total']);
}
}
ManipulateRowEntryEvent
Dispatched for every data row before it is written, carrying the raw row (as fetched from the database), the header labels and the export key. Use it to format values, resolve foreign keys to readable labels, or add computed columns.
- Mutable
-
yes, via
setRow (array $row) - Read
-
get,Row () get,Field Labels () getConfiguration Key ()
#[AsEventListener]
public function __invoke(ManipulateRowEntryEvent $event): void
{
$row = $event->getRow();
$row['created'] = date('Y-m-d', (int)($row['created'] ?? 0));
$event->setRow($row);
}