A Symfony bundle to integrate with PHPOffice's PhpSpreadsheet library

Installs: 29 642

Dependents: 2

Suggesters: 0

Stars: 20

Watchers: 3

Forks: 8

Open Issues: 1


v0.0.5 2019-01-17 00:12 UTC


This bundle integrates your Symfony 2/3/4 app with the PHPOffice PhpSpreadsheet productivity library.


This bundle requires, in addition to prerequisites of each PHPOffice library:

* PHP 5.6 or higher
* Symfony 2.7, 3.0 or 4.0


Use composer to require the latest stable version.

$ composer require yectep/phpspreadsheet-bundle

Then enable the bundle in your AppKernel.php file.

$bundles = array(
    new Yectep\PhpSpreadsheetBundle\PhpSpreadsheetBundle(),


This bundle enables the phpoffice.spreadsheet service.

See also the official PHPOffice PhpSpreadsheet documentation.


Creates an empty \PhpOffice\PhpSpreadsheet\Spreadsheet object, or, if an optional $filename is passed, instantiates the \PhpOffice\PhpSpreadsheet\IOFactory to automatically detect and use the appropriate IWriter class to read the file.

// In your controller
$newSpreadsheet = $this->get('phpoffice.spreadsheet')->createSpreadsheet();
$existingXlsx   = $this->get('phpoffice.spreadsheet')->createSpreadsheet('/path/to/file.xlsx');

createReader(string $type)

Returns an instance of the \PhpOffice\PhpSpreadsheet\Reader class of the given $type.

Types are case sensitive. Supported types are:

  • Xlsx: Excel 2007
  • Xls: Excel 5/BIFF (95)
  • Xml: Excel 2003 XML
  • Slk: Symbolic Link (SYLK)
  • Ods: Open/Libre Office (ODS)
  • Csv: CSV
  • Html: HTML
$readerXlsx  = $this->get('phpoffice.spreadsheet')->createReader('Xlsx');
$spreadsheet = $readerXlsx->load('/path/to/file.xlsx');

createWriter(Spreadsheet $spreadsheet, string $type)

Given a \PhpOffice\PhpSpreadsheet\Spreadsheet object and a writer $type, returns an instance of a \PhpOffice\PhpSpreadsheet\Writer class for that type.

In addition the the read types above, these types are additionally supported for writing, if the appropriate PHP libraries are installed.

  • Tcpdf
  • Mpdf
  • Dompdf
$spreadsheet = $this->get('phpoffice.spreadsheet')->createSpreadsheet();
$spreadsheet->getActiveSheet()->setCellValue('A1', 'Hello world');

$writerXlsx = $this->get('phpoffice.spreadsheet')->createWriter($spreadsheet, 'Xlsx');

Roadmap and Contributions

Contributions are more than welcome. Fork the project, and submit a PR when you're done.

Remaining todos include:

  • Tests and test coverage
  • TravisCI
  • Improved documentation