Laravel 8 Export Excel


इस topic में आप सीखेंगे कि कैसे Laravel 8 में blade template का use करके excel file को export करते हैं। बैसे तो आप normal PHP code से भी excel / csv file generate कर सकते हैं , लेकिन उसमे आप image insert नहीं कर पायंगे।

Important

I Hope, आपने Laravel project install कर लिया होगा , अगर नहीं किया तो नीचे दी गयी command run करके project install कर लें।

composer create-project --prefer-dist laravel/laravel projectName

Install maatwebsite/excel Package

Laravel 8 में excel file export करने के लिए maatwebsite/excel package का use करेंगे , तो सबसे पहले package install करते हैं।

composer require maatwebsite/excel

Add Providers & Alias

Next , अब हमें providers और alias add करने होंगे जिससे हम , short name के साथ package को access कर सकें। इसके लिए config/app.php file open करने और providers और alias Array में नीचे दी गयी lines add कर दें।

File : config/app.php
'providers' => [
   ....
   Maatwebsite\Excel\ExcelServiceProvider::class,

],

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

Add Routes

File : routes/web.php
<?php
use Illuminate\Support\Facades\Route;
use App\Http\Controllers\ExportController;
/*
|--------------------------------------------------------------------------
| Web Routes
|--------------------------------------------------------------------------
|
| Here is where you can register web routes for your application. These
| routes are loaded by the RouteServiceProvider within a group which
| contains the "web" middleware group. Now create something great!
|
*/
Route::get('export', [ExportController::class, 'export'])->name('export');

Create Export Class

अब हमें , एक Export class बनानी है , जिसमे हम पर वो data return करेंगे , जो हमें export करना है।

php artisan make:export DataExport

ये command run करने पर app/Exports/DataExport.php file create होगी , इसे open करें और जो भी data आपको import करना है , वो return कर दें।

File : app/Exports/DataExport.php
Copy Fullscreen Close Fullscreen
<?php
namespace App\Exports;
use Maatwebsite\Excel\Concerns\FromCollection;
class DataExport implements FromCollection
{
  /**
   * @description return data that you want to export. 
   * @return \Illuminate\Support\Collection
   */
  public function collection()
  {
    return collect([
      [
        'name' => 'User1',
        'age' => 25,
        'address' => 'User Addres 1'
      ],
      [
        'name' => 'User2',
        'age' => 27,
        'address' => 'User Addres 2'
      ],
    ]);
  }
}

Note : हमने यह dummy data Array return किया है हालाँकि आप चाहें तो , आप किसी Model का use करके Database से भी data return कर सकते हैं।

Create Controller

Next , अब हमें एक ExportController create करना है जिसे routes/web.php file में use किया था।

File : App/Http/Controllers/ExportController.php
Copy Fullscreen Close Fullscreen
<?php
namespace App\Http\Controllers;
use Excel;
use App\Exports\DataExport;
class ExportController extends Controller
{
  /**
   * Function to export data in excel file
   * @return \Illuminate\Support\Collection
   */
  public function export()
  {
    return Excel::download(new DataExport, 'excle-test.xlsx');
  }

Run

php artisan serve

hit 127.0.0.1:8000/export URL

Hey ! I'm Rahul founder of learnhindituts.com. Working in IT industry more than 4.5 years. I love to talk about programming as well as writing technical tutorials and blogs that can help to others .... keep learning :)

Get connected with me - LinkedIn Twitter Instagram Facebook