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');
Returns an instance of the \PhpOffice\PhpSpreadsheet\Reader
class of the given $type
.
Types are case sensitive. Supported types are:
Xlsx
: Excel 2007Xls
: Excel 5/BIFF (95)Xml
: Excel 2003 XMLSlk
: Symbolic Link (SYLK)Ods
: Open/Libre Office (ODS)Csv
: CSVHtml
: HTML
$readerXlsx = $this->get('phpoffice.spreadsheet')->createReader('Xlsx');
$spreadsheet = $readerXlsx->load('/path/to/file.xlsx');
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');
$writerXlsx->save('/path/to/destination.xlsx');
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