
565 views
Import Export to Excel and CSV using Maatwebsite in Laravel 5
Maatwebsite Excel is a popular Laravel package that allows you to easily import and export Excel and CSV files. It provides a convenient way to work with Excel and CSV files within your Laravel application. Here’s how you can use the Maatwebsite Excel package to handle importing and exporting in Laravel 5:
- Install the Maatwebsite Excel Package: Install the package using Composer:
Bash
composer require maatwebsite/excel:^2.1- Service Provider and Facade (Laravel 5.4 and below): For Laravel 5.5 and above, the package will automatically register. For versions 5.4 and below, add the following service provider and facade to your
config/app.phpfile:
PHP
'providers' => [
// ...
Maatwebsite\Excel\ExcelServiceProvider::class,
],
'aliases' => [
// ...
'Excel' => Maatwebsite\Excel\Facades\Excel::class,
],- Creating Export Classes: Create export classes that define the data to be exported. These classes should implement the
FromCollectioninterface and return a collection of data to be exported.
PHP
// app/Exports/UsersExport.php
use Maatwebsite\Excel\Concerns\FromCollection;
use App\User; // Assuming you have a User model
class UsersExport implements FromCollection
{
public function collection()
{
return User::all();
}
}- Creating Controllers for Export: Create a controller method to handle exporting. You can use the
Excelfacade to generate the Excel or CSV file.
PHP
use Excel;
use App\Exports\UsersExport;
public function export()
{
return Excel::download(new UsersExport, 'users.xlsx');
}- Creating Import Classes: Similarly, you can create import classes that define how data should be imported from Excel or CSV files. These classes should implement the
ToModelinterface and return instances of your model.
PHP
// app/Imports/UsersImport.php
use Maatwebsite\Excel\Concerns\ToModel;
use App\User; // Assuming you have a User model
class UsersImport implements ToModel
{
public function model(array $row)
{
return new User([
'name' => $row[0],
'email' => $row[1],
// ...
]);
}
}- Creating Controllers for Import: Create a controller method to handle importing. You can use the
Excelfacade to process the uploaded file and import the data.
PHP
use Excel;
use App\Imports\UsersImport;
public function import(Request $request)
{
$file = $request->file('file');
Excel::import(new UsersImport, $file);
return redirect()->back()->with('success', 'Data imported successfully.');
}Remember to create routes for your export and import methods in your web.php routes file.
This is a basic overview of how to use the Maatwebsite Excel package for importing and exporting in Laravel 5. Please refer to the official documentation for more detailed information and customization options: Maatwebsite Excel Documentation.