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 574

Dependents: 0

Suggesters: 0

Security: 0

Stars: 0

Watchers: 1

Forks: 2

Type:symfony-bundle

v1.0.1 2022-05-17 08:19 UTC

This package is auto-updated.

Last update: 2024-12-17 14:49:20 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();