V4.5.46 Self hosted export error CSV/XLS

Hello

On my v.4.5.46 Self hosted when attempting to export csv or xls there is a 500 error.

After enabling DEBUG when I try to export I get the following error

Array and string offset access syntax with curly braces is deprecated

(1/1) ErrorException

Array and string offset access syntax with curly braces is deprecated
in String.php line 526
at HandleExceptions->handleError(8192, ‘Array and string offset access syntax with curly braces is deprecated’, ‘/home/duzigrou/public_html/vendor/phpoffice/phpexcel/Classes/PHPExcel/Shared/String.php’, 526, array(‘pClassName’ => ‘PHPExcel_Shared_String’, ‘pClassFilePath’ => ‘/home/duzigrou/public_html/vendor/phpoffice/phpexcel/Classes/PHPExcel/…/PHPExcel/Shared/String.php’))in Autoloader.php line 79
at require()in Autoloader.php line 79
at PHPExcel_Autoloader::load(‘PHPExcel_Shared_String’)
at spl_autoload_call(‘PHPExcel_Shared_String’)in Autoloader.php line 11
at require(‘/home/duzigrou/public_html/vendor/phpoffice/phpexcel/Classes/PHPExcel/Autoloader.php’)in Settings.php line 9
at include(‘/home/duzigrou/public_html/vendor/phpoffice/phpexcel/Classes/PHPExcel/Settings.php’)in ClassLoader.php line 571
at Composer\Autoload\includeFile(‘/home/duzigrou/public_html/vendor/composer/…/phpoffice/phpexcel/Classes/PHPExcel/Settings.php’)in ClassLoader.php line 428
at ClassLoader->loadClass(‘PHPExcel_Settings’)
at spl_autoload_call(‘PHPExcel_Settings’)in ExcelServiceProvider.php line 240
at ExcelServiceProvider->setLocale()in ExcelServiceProvider.php line 103
at ExcelServiceProvider->Maatwebsite\Excel{closure}(object(Application), array())in Container.php line 799
at Container->build(object(Closure))in Container.php line 681
at Container->resolve(‘phpexcel’, array(), true)in Application.php line 785
at Application->resolve(‘phpexcel’, array())in Container.php line 629
at Container->make(‘phpexcel’, array())in Application.php line 770
at Application->make(‘phpexcel’)in Container.php line 1244
at Container->offsetGet(‘phpexcel’)in ExcelServiceProvider.php line 198
at ExcelServiceProvider->Maatwebsite\Excel{closure}(object(Application), array())in Container.php line 799
at Container->build(object(Closure))in Container.php line 681
at Container->resolve(‘excel’, array(), true)in Application.php line 785
at Application->resolve(‘excel’, array())in Container.php line 629
at Container->make(‘excel’, array())in Application.php line 770
at Application->make(‘excel’)in Container.php line 1244
at Container->offsetGet(‘excel’)in Facade.php line 198
at Facade::resolveFacadeInstance(‘excel’)in Facade.php line 166
at Facade::getFacadeRoot()in Facade.php line 255
at Facade::__callStatic(‘create’, array(‘2022-12-27-invoiceninja’, object(Closure)))in ExportController.php line 111
at ExportController->returnCSV(object(Request), ‘2022-12-27-invoiceninja’)in ExportController.php line 56
at ExportController->doExport(object(Request))in Controller.php line 54
at Controller->callAction(‘doExport’, array(object(Request)))in ControllerDispatcher.php line 45
at ControllerDispatcher->dispatch(object(Route), object(ExportController), ‘doExport’)in Route.php line 219
at Route->runController()in Route.php line 176
at Route->run()in Router.php line 681
at Router->Illuminate\Routing{closure}(object(Request))in Pipeline.php line 130
at Pipeline->Illuminate\Pipeline{closure}(object(Request))in PermissionsRequired.php line 53
at PermissionsRequired->handle(object(Request), object(Closure))in Pipeline.php line 171
at Pipeline->Illuminate\Pipeline{closure}(object(Request))in Authenticate.php line 122
at Authenticate->handle(object(Request), object(Closure), ‘user’)in Pipeline.php line 171
at Pipeline->Illuminate\Pipeline{closure}(object(Request))in DatabaseLookup.php line 21
at DatabaseLookup->handle(object(Request), object(Closure), ‘user’)in Pipeline.php line 171
at Pipeline->Illuminate\Pipeline{closure}(object(Request))in StartupCheck.php line 240
at StartupCheck->handle(object(Request), object(Closure))in Pipeline.php line 171
at Pipeline->Illuminate\Pipeline{closure}(object(Request))in QueryLogging.php line 32
at QueryLogging->handle(object(Request), object(Closure))in Pipeline.php line 171
at Pipeline->Illuminate\Pipeline{closure}(object(Request))in DuplicateSubmissionCheck.php line 41
at DuplicateSubmissionCheck->handle(object(Request), object(Closure))in Pipeline.php line 171
at Pipeline->Illuminate\Pipeline{closure}(object(Request))in TransformsRequest.php line 21
at TransformsRequest->handle(object(Request), object(Closure))in Pipeline.php line 171
at Pipeline->Illuminate\Pipeline{closure}(object(Request))in VerifyCsrfToken.php line 78
at VerifyCsrfToken->handle(object(Request), object(Closure))in VerifyCsrfToken.php line 44
at VerifyCsrfToken->handle(object(Request), object(Closure))in Pipeline.php line 171
at Pipeline->Illuminate\Pipeline{closure}(object(Request))in ShareErrorsFromSession.php line 49
at ShareErrorsFromSession->handle(object(Request), object(Closure))in Pipeline.php line 171
at Pipeline->Illuminate\Pipeline{closure}(object(Request))in StartSession.php line 56
at StartSession->handle(object(Request), object(Closure))in Pipeline.php line 171
at Pipeline->Illuminate\Pipeline{closure}(object(Request))in AddQueuedCookiesToResponse.php line 37
at AddQueuedCookiesToResponse->handle(object(Request), object(Closure))in Pipeline.php line 171
at Pipeline->Illuminate\Pipeline{closure}(object(Request))in EncryptCookies.php line 67
at EncryptCookies->handle(object(Request), object(Closure))in Pipeline.php line 171
at Pipeline->Illuminate\Pipeline{closure}(object(Request))in Pipeline.php line 105
at Pipeline->then(object(Closure))in Router.php line 683
at Router->runRouteWithinStack(object(Route), object(Request))in Router.php line 658
at Router->runRoute(object(Request), object(Route))in Router.php line 624
at Router->dispatchToRoute(object(Request))in Router.php line 613
at Router->dispatch(object(Request))in Kernel.php line 170
at Kernel->Illuminate\Foundation\Http{closure}(object(Request))in Pipeline.php line 130
at Pipeline->Illuminate\Pipeline{closure}(object(Request))in InjectDebugbar.php line 67
at InjectDebugbar->handle(object(Request), object(Closure))in Pipeline.php line 171
at Pipeline->Illuminate\Pipeline{closure}(object(Request))in CheckForMaintenanceMode.php line 63
at CheckForMaintenanceMode->handle(object(Request), object(Closure))in Pipeline.php line 171
at Pipeline->Illuminate\Pipeline{closure}(object(Request))in Pipeline.php line 105
at Pipeline->then(object(Closure))in Kernel.php line 145
at Kernel->sendRequestThroughRouter(object(Request))in Kernel.php line 110
at Kernel->handle(object(Request))in index.php line 51

There’s some info about this error here:

This does seem like a solution.
It seems that if I edit all the files that the error gives me it should work, however for now I do not have the time.

Maybe in future I will and provide feedback here and maybe completed files when I have them.

UPDATE:

It isnt just the curly braces {} to [] in php 7.4 for the phpexcel modle.

If you change those there are man other errors which surface.

Furthermore I read that phpexcel is deprecated and now phpspreadsheet is to be used.

However since v4 development of Invoice Ninja has stopped I do not believe we will ever have this issue resolved.

https://phpspreadsheet.readthedocs.io/en/latest/topics/migration-from-PHPExcel/