boenrobot / big-xlsx-bundle
Symfony2 Bundle for generating large multi-sheeted xlsx files with low memory usage. Fork of bassim/BigXlsxBundle, for compatibility with newer PHP versions.
Installs: 6 458
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 1
Forks: 2
Type:symfony-bundle
Requires
- ext-zip: *
- phpoffice/phpspreadsheet: ^1.12
Requires (Dev)
- ext-simplexml: *
- phpunit/phpunit: ^5
- symfony/symfony: 2.3.*
Conflicts
This package is auto-updated.
Last update: 2024-11-17 14:40:56 UTC
README
Symfony2 Bundle for generating large multi-sheeted xlsx files with low memory usage.
This Bundle basically acts as a replacement for creating csv files with large datasets. This, because the CSV format can be troublesome when it comes to difference in default cell separators en line-endings on specific operating systems. Also, obviously, CSV cannot handle multiple sheets.
This bundle uses the 'codeplex/phpexcel' bundle but tries to get rid of the enormous execution time and memory consumption when one wants to store large datasets in a xlsx.
Installation
add this to your composer.json:
"bassim/big-xlsx-bundle": "dev-master"
add this to your AppKernel.php
new Bassim\BigXlsxBundle\BassimBigXlsxBundle(),
Basic Usage
/** @var $service BigXlsxService */
$service = $container->get('bassim_big_xlsx.service');
$data[] = array("id","name");
for ($i=0;$i<1;$i++) {
$data[] = array($i, "name_".$i);
}
$service->addSheet(0, "test Sheet_0", $data);
$file = $service->getFile();
Adding a custom sheet
/** @var $service BigXlsxService */
$service = $container->get('bassim_big_xlsx.service');
$data[] = array("id","name");
for ($i=0;$i<1;$i++) {
$data[] = array($i, "name_".$i);
}
$service->addSheet(0, "test Sheet_0", $data);
$objPHPExcel = $service->getPHPExcel();
//add custom sheet
$objPHPExcel->createSheet(1);
$objPHPExcel->setActiveSheetIndex(1);
$objPHPExcel->getActiveSheet()->setTitle("test");
// ....
$file = $service->getFile();