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
Requires
- php: >=8.1
- phpoffice/phpspreadsheet: ^1.29|^2.0|^3.0|^4.0|^5.0
- symfony/http-foundation: ^6.0|^7.0
Requires (Dev)
- phpunit/phpunit: ^10.1|^11
This package is auto-updated.
Last update: 2026-01-23 20:08:44 UTC
README
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).