onurb/excel-bundle

Symfony Bundle to read or write Excel file (including pdf, xlsx, odt), using phpoffice/phpspreadsheet library (replacement of phpoffice/phpexcel, abandonned)

Installs: 307 733

Dependents: 0

Suggesters: 0

Security: 0

Stars: 13

Watchers: 1

Forks: 8

Open Issues: 2

Type:symfony-bundle

1.0.2 2019-06-24 20:41 UTC

This package is not auto-updated.

Last update: 2024-04-09 02:56:10 UTC


README

Build Status Scrutinizer Code Quality Code Coverage License Latest Stable Version Total Downloads

Installation

1 Add to composer.json to the require key

    composer require onurb/excel-bundle

or manually in composer.json

    ...,
    "require": {
            ...,
            "onurb/excel-bundle":     "~1.0"
        },
    ...

2 Symfony 3 : Register the bundle in app/AppKernel.php

    $bundles = array(
        // ...
        new \Onurb\Bundle\ExcelBundle\OnurbExcelBundle(),
    );

Symfony 4 : With symfony flex, bundle should be already automatically registered :

   // config/bundles.php
    return [
        // ...
        Onurb\Bundle\ExcelBundle\OnurbExcelBundle::class => ['all' => true],
    ];

Usage

Create a spreadsheet

$spreadsheet = $this->get('phpspreadsheet')->createSpreadsheet();

Create a spreadsheet from an existing file

$spreadsheet = $this->get('phpspreadsheet')->createSpreadsheet('file.xlsx');

Create a Excel5 and write to a file given the object:

$writer = $this->get('phpspreadsheet')->createWriter($spreadsheet, 'Xls');
$writer->save('file.xls');

Create a Excel 2007 and create a StreamedResponse:

$writer = $this->get('phpspreadsheet')->createWriter($spreadsheet, 'Xlsx');
$response = $this->get('phpspreadsheet')->createStreamedResponse($writer);

Create a Excel file with an image:

$writer = $this->get('phpspreadsheet')->createSpreadSheet();
$writer->setActiveSheetIndex(0);
$activesheet = $writer->getActiveSheet();
$drawingobject = $this->get('phpspreadsheet')->createSpreadsheetWorksheetDrawing();
$drawingobject->setPath('/path/to/image')
    ->setName('Image name')
    ->setDescription('Image description')
    ->setHeight(60)
    ->setOffsetY(20)
    ->setCoordinates('A1')
    ->setWorksheet($activesheet);

Create reader

$reader = $this->get('phpspreadsheet')->createReader('Xlsx');

Supported file types

Types are case sensitive. Supported types are:

  • Xlsx: Excel 2007
  • Xls: Excel 5
  • Xml: Excel 2003 XML
  • Slk: Symbolic Link (SYLK)
  • Ods: Libre Office (ODS)
  • Csv: CSV
  • Html: HTML

Optional libraries can be installed for writing:

  • Tcpdf
  • Mpdf
  • Dompdf

to install these libraries :

composer require tecnick.com/tcpdf
composer require mpdf/mpdf
composer require dompdf/dompdf

liuggio/Excelbundle portability

For users already using liuggio/ExcelBundle wanting to migrate to phpspreadsheet, the bundle should be directly compatible : old phpexcel file types are maintained, a compatibility factory has been added, and the phpexcel service is also redeclared.

More

See also the official PhpSpreadsheet documentation.