Follow

Keep Up to Date with the Most Important News

By pressing the Subscribe button, you confirm that you have read and are agreeing to our Privacy Policy and Terms of Use
Contact

Class 'PhpOffice\phpspreadsheet\src\PhpSpreadsheet\Spreadsheet' not found in Laravel

In my Laravel project I have used the PhpOffice Spreadsheet for downloading data as excel format from a datatable.

For doing that I need to add code in my controller, route and view.

Controller

MEDevel.com: Open-source for Healthcare and Education

Collecting and validating open-source software for healthcare, education, enterprise, development, medical imaging, medical records, and digital pathology.

Visit Medevel

I have used below namespaces in my controller

<?php

    namespace App\Http\Controllers;

    use PhpOffice\PhpSpreadsheet\Spreadsheet;
    use PhpOffice\PhpSpreadsheet\Writer\Xlsx;
    use PhpOffice\PhpSpreadsheet\Writer\Xls;
    use App\OfferCustomersDataTbl;

    public function export($type) {
        $offer_customer_data = OfferCustomersDataTbl::all();
        $spreadsheet = new Spreadsheet();
        $sheet = $spreadsheet->getActiveSheet();
        $sheet->setCellValue('A1', 'Id');
        $sheet->setCellValue('B1', 'Name');
        $sheet->setCellValue('C1', 'Email');
        $rows = 2;

        foreach($offer_customer_data as $empDetails){
            $sheet->setCellValue('A' . $rows, $empDetails['id']);
            $sheet->setCellValue('B' . $rows, $empDetails['name']);
            $sheet->setCellValue('C' . $rows, $empDetails['email']);
            $rows++;
        }

        $fileName = "emp.".$type;
        if($type == 'xlsx') {
        $writer = new Xlsx($spreadsheet);
        } else if($type == 'xls') {
        $writer = new Xls($spreadsheet);
        }
        $writer->save("export/".$fileName);
        header("Content-Type: application/vnd.ms-excel");
        return redirect(url('/')."/export/".$fileName);
    }

Route

Route::get('/export/{type}', 'OfferCustomersDataController@export');

View

<a href="{{ url('/') }}/export/xlsx" class="btn btn-info">Export to .xlsx</a>

But while I click to Download as Excel button for downloading it always gives an error

Class ‘PhpOffice\phpspreadsheet\src\PhpSpreadsheet\Spreadsheet’ not
found

But that Spreadsheet class is in that location I have checked several times.

Where is the problem I can’t figure out.

Anybody help please? Thanks in advance

>Solution :

In command line:
composer require phpoffice/phpspreadsheet

Then in the controller:

use PhpOffice\PhpSpreadsheet\Spreadsheet;

Use ‘namespace’ \ ‘classname’, not absolute link

Add a comment

Leave a Reply

Keep Up to Date with the Most Important News

By pressing the Subscribe button, you confirm that you have read and are agreeing to our Privacy Policy and Terms of Use

Discover more from Dev solutions

Subscribe now to keep reading and get access to the full archive.

Continue reading