boenrobot/ big-xlsx-bundle
低内存使用生成大型多工作表xlsx文件的Symfony2 Bundle。基于bassim/BigXlsxBundle,用于与较新版本的PHP兼容。
v1.0.1
2022-05-17 08:19 UTC
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-09-17 14:05:07 UTC
README
低内存使用生成大型多工作表xlsx文件的Symfony2 Bundle。
此Bundle基本上是用于创建大型数据集csv文件的替代品。这是因为CSV格式在特定操作系统中默认单元格分隔符和行结束符不同时可能会有问题。显然,CSV也无法处理多个工作表。
此Bundle使用'codeplex/phpexcel' Bundle,但试图减少将大量数据集存储在xlsx时所需的巨大执行时间和内存消耗。
安装
将此添加到您的composer.json
"bassim/big-xlsx-bundle": "dev-master"
将此添加到您的AppKernel.php
new Bassim\BigXlsxBundle\BassimBigXlsxBundle(),
基本使用
/** @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();
添加自定义工作表
/** @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();