BigXlsxBundle
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();