codeinc/symfony-phpspreadsheet-response

A simple Symfony HTTP response for PhpSpreadsheet written in PHP 8.1+.

Installs: 16 463

Dependents: 0

Suggesters: 0

Security: 0

Stars: 2

Watchers: 1

Forks: 0

Open Issues: 0

pkg:composer/codeinc/symfony-phpspreadsheet-response

1.6 2026-01-23 19:56 UTC

README

Tests Packagist Version Packagist Downloads Packagist License PHP Version

A simple Symfony HTTP response for PhpSpreadsheet written in PHP 8 intended to be used with Symfony's HTTPFoundation component.

Features

  • Supports multiple formats: XLSX, XLS, CSV, ODS, HTML, and PDF
  • Automatic MIME type and extension handling
  • UTF-8 filename support
  • Streamed response for memory efficiency
  • Compatible with PHP 8.1+, Symfony 6/7, and PHPSpreadsheet 1.29+

Usage

Basic usage (XLSX)

<?php
use CodeInc\SpreadsheetResponse\SpreadsheetResponse;
use PhpOffice\PhpSpreadsheet\Spreadsheet;

class MyController extends AbstractController {
    #[Route("/download", name: "download_spreadsheet")]
    public function download(): SpreadsheetResponse {
        $spreadsheet = new Spreadsheet();
        // build the spreadsheet...
        return new SpreadsheetResponse($spreadsheet, "report.xlsx");
    }
}

Export as CSV

use PhpOffice\PhpSpreadsheet\Writer\Csv;

return new SpreadsheetResponse(
    $spreadsheet,
    "export.csv",
    writer: new Csv($spreadsheet)
);

Display inline (in browser)

return new SpreadsheetResponse(
    $spreadsheet,
    "preview.xlsx",
    disposition: 'inline'
);

Installation

This library is available through Packagist and can be installed using Composer:

composer require codeinc/symfony-phpspreadsheet-response

License

This library is published under the MIT license (see the LICENSE file).