Skip to content
Viames Marino edited this page Feb 23, 2026 · 1 revision

Pair framework: Report

Pair\Services\Report is an abstract base for spreadsheet exports (PhpSpreadsheet).

Main methods

  • save(string $filePath): bool
  • download(): void
  • setTitle(string $title): self, setSubject(string $subject): self
  • setBuilder(string $library): self
  • getSpreadsheet(): Spreadsheet

Protected helpers for subclasses:

  • addColumn(string $head, ?string $format = null): self
  • addRow(array $indexedCellsValue): void
  • setDataAndColumnsFromDictionary(array $dictionary): self
  • setDataAndColumnsFromObjects(array $objectList): self

Implementation example

final class OrdersReport extends \Pair\Services\Report {
    public function build(array $rows): void {
        $this->addColumn('Order #')
            ->addColumn('Customer')
            ->addColumn('Total');

        foreach ($rows as $row) {
            $this->addRow([$row['id'], $row['customer'], $row['total']]);
        }
    }
}

$report = new OrdersReport();
$report->setTitle('Orders')->build($data);
$report->save(APP_PATH . '/temp/orders.xlsx');

Notes

  • Override beforeSave() and afterSave() for custom hooks.
  • Date/boolean format helpers are available in the base class.

See also: Query, Utilities.

Clone this wiki locally