Laravel excel export Start row

We have seen a few Laravel tutorials for beginners and through one of our blog posts, we received a query- Laravel 8 export data excel file with example. So here we are with another Laravel tutorial!

In this step-by-step guideline of Laravel 8 export data as excel file, we will build a demo application in which we will use the maatwebsite/excel package for exporting data. You might be familiar with the package; it provides the best way for exporting the data as a CSV file or Excel file.

We will build a demo application where we will see how to implement Excel export functionality in Laravel using the maatwebsite/excel package.

Tutorial Goal: Laravel 8 Export Data as Excel File with Example

Before starting the development part, let’s see the below video so that you can have an idea of what are we going to build in this blog.

Create a Model with Migration

Run this command to create a modal

php artisan make:model Student -m

// Student.php

Here we have to store the student data to create a table and define the table’s fields.

Create a Data Table

Go to the database/migration folder, then open the migration file and write the following code.

// 2021_07_16_041455_create_students_table

id();
            $table->string('name');
            $table->string('email');
            $table->string('city');
            $table->timestamps();
        });
    } 
    /**
     * Reverse the migrations.
     *
     * @return void
     */
    public function down()
    {
        Schema::dropIfExists('students');
    }
}

We will create a table using the above fields.

Now run this command. This command is useful for creating actual tables in the GUI and migrating tables in the database.

Install maatwebsite/excel package

To install maatwebsite/excel, run the below-mentioned command

composer require maatwebsite/excel.

With the help of this package, we can export data into an excel file.

Now open config/app.php and add service provider and alias.

'providers' => [
      ....
     Maatwebsite\Excel\ExcelServiceProvider::class,
],
'aliases' => [
      ....
     'Excel' => Maatwebsite\Excel\Facades\Excel::class,
],

Define the routes

Routes are required for navigating the web pages for defining routes in our demo app, open routes/web.php, and use the following code.

// web.php

Route::resource('student', StudentController::class);
Route::get('student_export',[StudentController::class, 'get_student_data'])->name('student.export');

Create an Export Class

In this section, we will create an export class and define the model to which it is connected. The maatwebsite package offers a way for building an export class so that we can further use it in the controller.

Run the below command for the same.

php artisan make:export StudentExport --model=Student

Here StudentExport class will define the data that we want to export in our excel file.

Go to app/Exports/ StudentExport.php and make the following changes in your code

// StudentExport.php

The heading() function will define the heading, which would be displayed in an excel file.

The collection() method will return the data which we have to export. Here in our demo app, we will export all student data using the Student Model.

Create Controller

Before creating the controller we have to make a request.

The command for creating a request.

php artisan make::request StoreStudentRequest

Here are the validation rules applied for entering student data.

public function rules()
    {
        return [
            'name' => 'bail|required|string|max:255',
            'email' => 'bail|required|string|email|max:255',
            'city' => 'bail|required|string|max:255'
        ];
    }
}

Run this command to create a resource controller for writing the logic.

php artisan make:controller StudentController –resource

Go to app/Http/Controllers/StudentController.php and write a code.

// StudentController.php

name = $request->name;
        $student->email = $request->email;
        $student->city = $request->city;
        $student->save();
        return redirect(route('student.index'))->with('success','Data submited successfully!');
    } 
    /**
     * Display the specified resource.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function show($id)
    {
        //
    } 
    /**
     * Show the form for editing the specified resource.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function edit($id)
    {
        //
    } 
    /**
     * Update the specified resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function update(Request $request, $id)
    {
        //
    }
 
    /**
     * Remove the specified resource from storage.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function destroy($id)
    {
        //
    } 
    public function get_student_data()
    {
        return Excel::download(new StudentExport, 'students.xlsx');
    }
}

Now we will use the download method of the Laravel excel package within the get_student_data() function. It will accept two parameters: export class and name of the file (you can name it anything you want)

The second parameter is the name of the file in which we want to export the data.

  • The create() function is used to create the form.
  • The store() method is used to store the data in the database
  • The index() method is used to display the data.

Create a View to Add Records and Display Details

Go to the resources/views folder. Create a new folder layout with a file named a main.blade.php

// main.blade.php

Now create another folder within the views folder named student. We have to add the records of the student, and for that, we will need forms. Forms are defined in the view file.

Here main.blade.php is the parent layout file containing all the common header and footer.

In the Student folder, create two files, namely: create.blade.php and index.blade.php.

The create.blade.php file is required to create the form so that students can enter the data. Open create.blade.php and write the following code.

//create.blade.php

id();
            $table->string('name');
            $table->string('email');
            $table->string('city');
            $table->timestamps();
        });
    } 
    /**
     * Reverse the migrations.
     *
     * @return void
     */
    public function down()
    {
        Schema::dropIfExists('students');
    }
}
0

In the index.blade.php file, we have displayed the Student data in the table format, and we can easily download the data and export it as an excel file by clicking the Export button.

// index.blade.php

id();
            $table->string('name');
            $table->string('email');
            $table->string('city');
            $table->timestamps();
        });
    } 
    /**
     * Reverse the migrations.
     *
     * @return void
     */
    public function down()
    {
        Schema::dropIfExists('students');
    }
}
1

Develop. Maintain. Optimize. Deploy – with Bacancy!
Are you looking for proficient developers to build highly-optimized applications? Get in touch with us to hire Laravel developer. Contact the best, to get the best! Period!

Run the Demo Application

The last section of the tutorial- laravel 8 export data as excel file is to run the app. Now it’s time to run our demo. Run the below command.

After running the server successfully you can see the app working on

http://localhost:8000/student/create

GitHub Repository

The entire source code is available here: laravel-excel-export-example. Feel free to clone the repo and play around with the code.

Conclusion

So, I hope the tutorial of laravel 8 export data as excel file was helpful to you. Are you a laravel enthusiast and find it difficult for basic tutorials? If yes, then the Laravel tutorials page is for you! Feel free to visit and explore more such laravel tutorials.

Bacancy has dedicated, skilled, and experienced laravel developers with problem-solving skills. If you are looking for laravel developers who can help you with your requirements and project then without wasting your time contact Bacancy and hire laravel developer.

How to export data to excel in laravel?

There are 9 easy steps to follow..
Install new laravel project..
Configure Database details and model..
Install maatwebsite/excel package..
Create Routes..
Create import class for import data..
Create an export class for export data..
Create controller..
Create blade / view files..

How to skip first row in CSV laravel?

skip first line or any line in csv file using php By using this code we can skip multiple roe of csv file. we have to add roe number $skip_row_number and pass skip row number in code. so we will check if row meach then skip row.

How to use fast excel in laravel?

Fast Excel Package for Laravel.
use Rap2hpoutre\FastExcel\FastExcel;.
use App\User;.
$users = User::all();.
(new FastExcel($users))->export('file.xlsx');.
$list = collect([.
[ 'id' => 1, 'name' => 'Jane' ],.
[ 'id' => 2, 'name' => 'John' ],.
(new FastExcel($list))->export('file.xlsx');.

How to merge cells in laravel excel?

To merge a range of cells, use ->mergeCells($range) .