Laravel-Excel: [BUG] Exporting large file caused Allowed Memory Size Exhausted fatal error
I tried to generate a large excel file which has about 360 columns and 7000 rows, but got the php fatal error.
Package version, Laravel version
Package Version 2.1.9 Laravel Version 5.3
Actual behaviour
Symfony\Component\Debug\Exception\FatalErrorException: Allowed memory size of 1073741824 bytes exhausted (tried to allocate 67108872 bytes) in /home/vagrant/projects/myproject/vendor/phpoffice/phpexcel/Classes/PHPExcel/CachedObjectStorage/CacheBase.php:173
Stack trace:
#0 /home/vagrant/projects/myproject/vendor/laravel/framework/src/Illuminate/Foundation/Bootstrap/HandleExceptions.php(132): Symfony\Component\Debug\Exception\FatalErrorException->__construct()
#1 /home/vagrant/projects/myproject/vendor/laravel/framework/src/Illuminate/Foundation/Bootstrap/HandleExceptions.php(118): Illuminate\Foundation\Bootstrap\HandleExceptions->fatalExceptionFromError()
#2 /home/vagrant/projects/myproject/vendor/laravel/framework/src/Illuminate/Foundation/Bootstrap/HandleExceptions.php(0): Illuminate\Foundation\Bootstrap\HandleExceptions->handleShutdown()
#3 /home/vagrant/projects/myproject/vendor/phpoffice/phpexcel/Classes/PHPExcel/CachedObjectStorage/CacheBase.php(173): array_keys()
#4 /home/vagrant/projects/myproject/vendor/phpoffice/phpexcel/Classes/PHPExcel/Worksheet.php(491): PHPExcel_CachedObjectStorage_CacheBase->getCellList()
#5 /home/vagrant/projects/myproject/vendor/phpoffice/phpexcel/Classes/PHPExcel/Worksheet.php(746): PHPExcel_Worksheet->getCellCollection()
#6 /home/vagrant/projects/myproject/vendor/maatwebsite/excel/src/Maatwebsite/Excel/Classes/LaravelExcelWorksheet.php(945): PHPExcel_Worksheet->calculateColumnWidths()
#7 /home/vagrant/projects/myproject/vendor/maatwebsite/excel/src/Maatwebsite/Excel/Writers/LaravelExcelWriter.php(227): Maatwebsite\Excel\Classes\LaravelExcelWorksheet->setAutoSize()
#8 /home/vagrant/projects/myproject/app/Api/V1/Controllers/Controller.php(222): Maatwebsite\Excel\Writers\LaravelExcelWriter->sheet()
#9 /home/vagrant/projects/myproject/vendor/maatwebsite/excel/src/Maatwebsite/Excel/Excel.php(87): App\Api\V1\Controllers\Controller->App\Api\V1\Controllers\{closure}()
#10 /home/vagrant/projects/myproject/vendor/maatwebsite/excel/src/Maatwebsite/Excel/Excel.php(87): call_user_func:{/home/vagrant/projects/myproject/vendor/maatwebsite/excel/src/Maatwebsite/Excel/Excel.php:87}()
#11 /home/vagrant/projects/myproject/vendor/laravel/framework/src/Illuminate/Support/Facades/Facade.php(237): Maatwebsite\Excel\Excel->create()
#12 /home/vagrant/projects/myproject/app/Api/V1/Controllers/Controller.php(223): Illuminate\Support\Facades\Facade::__callStatic()
#13 /home/vagrant/projects/myproject/app/Api/V1/Controllers/Controller.php(223): Illuminate\Support\Facades\Facade::create()
#14 /home/vagrant/projects/myproject/vendor/laravel/framework/src/Illuminate/Routing/Controller.php(55): App\Api\V1\Controllers\Controller->report()
#15 /home/vagrant/projects/myproject/vendor/laravel/framework/src/Illuminate/Routing/Controller.php(55): call_user_func_array:{/home/vagrant/projects/myproject/vendor/laravel/framework/src/Illuminate/Routing/Controller.php:55}()
#16 /home/vagrant/projects/myproject/vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php(44): Illuminate\Routing\Controller->callAction()
#17 /home/vagrant/projects/myproject/vendor/laravel/framework/src/Illuminate/Routing/Route.php(189): Illuminate\Routing\ControllerDispatcher->dispatch()
#18 /home/vagrant/projects/myproject/vendor/laravel/framework/src/Illuminate/Routing/Route.php(144): Illuminate\Routing\Route->runController()
#19 /home/vagrant/projects/myproject/vendor/laravel/framework/src/Illuminate/Routing/Router.php(653): Illuminate\Routing\Route->run()
#20 /home/vagrant/projects/myproject/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(53): Illuminate\Routing\Router->Illuminate\Routing\{closure}()
#21 /home/vagrant/projects/myproject/vendor/dingo/api/src/Http/Middleware/Auth.php(55): Illuminate\Routing\Pipeline->Illuminate\Routing\{closure}()
#22 /home/vagrant/projects/myproject/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(137): Dingo\Api\Http\Middleware\Auth->handle()
#23 /home/vagrant/projects/myproject/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(33): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#24 /home/vagrant/projects/myproject/vendor/dingo/api/src/Http/Middleware/PrepareController.php(45): Illuminate\Routing\Pipeline->Illuminate\Routing\{closure}()
#25 /home/vagrant/projects/myproject/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(137): Dingo\Api\Http\Middleware\PrepareController->handle()
#26 /home/vagrant/projects/myproject/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(33): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#27 /home/vagrant/projects/myproject/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(104): Illuminate\Routing\Pipeline->Illuminate\Routing\{closure}()
#28 /home/vagrant/projects/myproject/vendor/laravel/framework/src/Illuminate/Routing/Router.php(655): Illuminate\Pipeline\Pipeline->then()
#29 /home/vagrant/projects/myproject/vendor/laravel/framework/src/Illuminate/Routing/Router.php(629): Illuminate\Routing\Router->runRouteWithinStack()
#30 /home/vagrant/projects/myproject/vendor/laravel/framework/src/Illuminate/Routing/Router.php(607): Illuminate\Routing\Router->dispatchToRoute()
#31 /home/vagrant/projects/myproject/vendor/dingo/api/src/Routing/Adapter/Laravel.php(81): Illuminate\Routing\Router->dispatch()
#32 /home/vagrant/projects/myproject/vendor/dingo/api/src/Routing/Router.php(513): Dingo\Api\Routing\Adapter\Laravel->dispatch()
#33 /home/vagrant/projects/myproject/vendor/dingo/api/src/Http/Middleware/Request.php(126): Dingo\Api\Routing\Router->dispatch()
#34 /home/vagrant/projects/myproject/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(151): Dingo\Api\Http\Middleware\Request->Dingo\Api\Http\Middleware\{closure}()
#35 /home/vagrant/projects/myproject/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/CheckForMaintenanceMode.php(46): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#36 /home/vagrant/projects/myproject/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(137): Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode->handle()
#37 /home/vagrant/projects/myproject/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(104): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#38 /home/vagrant/projects/myproject/vendor/dingo/api/src/Http/Middleware/Request.php(127): Illuminate\Pipeline\Pipeline->then()
#39 /home/vagrant/projects/myproject/vendor/dingo/api/src/Http/Middleware/Request.php(103): Dingo\Api\Http\Middleware\Request->sendRequestThroughRouter()
#40 /home/vagrant/projects/myproject/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(137): Dingo\Api\Http\Middleware\Request->handle()
#41 /home/vagrant/projects/myproject/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(33): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#42 /home/vagrant/projects/myproject/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(104): Illuminate\Routing\Pipeline->Illuminate\Routing\{closure}()
#43 /home/vagrant/projects/myproject/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(150): Illuminate\Pipeline\Pipeline->then()
#44 /home/vagrant/projects/myproject/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(117): Illuminate\Foundation\Http\Kernel->sendRequestThroughRouter()
#45 /home/vagrant/projects/myproject/public/index.php(53): Illuminate\Foundation\Http\Kernel->handle()
#46 /home/vagrant/projects/myproject/public/index.php(0): {main}()
#47 {main}
I haven’t changed the config/excel.php file so all configs have the default values.
Can someone please help me to fix the issue? Thanks!
About this issue
- Original URL
- State: closed
- Created 7 years ago
- Reactions: 2
- Comments: 15
@mpgbis-dinesh It’s not the bug, you are loading more data into memory so anyway it will throw errors. You will have to reduce the amount of data you take into memory. You have 360 column’s so reduce chunk size to 100 or 200 then try. I did not use this package, I manually exported data to the client browser. function export.txt
@netstudenton what line would that be?
@fpena Unfortunately I"m getting
Undefined offset: 0
with you solutionAn example of how to do this