A simple Symfony HTTP response for PhpSpreadsheet written in PHP 8 intended to be used with Symfony's HTTPFoundation component.
- 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+
<?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");
}
}use PhpOffice\PhpSpreadsheet\Writer\Csv;
return new SpreadsheetResponse(
$spreadsheet,
"export.csv",
writer: new Csv($spreadsheet)
);return new SpreadsheetResponse(
$spreadsheet,
"preview.xlsx",
disposition: 'inline'
);This library is available through Packagist and can be installed using Composer:
composer require codeinc/symfony-phpspreadsheet-responseThis library is published under the MIT license (see the LICENSE file).