Laravel Excel is designed at being a Laravel-flavoured PhpSpreadsheet. It is a manageable and elegant wrapper around PhpSpreadsheet to simplify exports and imports. PhpSpreadsheet is a php based library that enables you to read and write different spreadsheet file formats, like Excel and LibreOffice Calc. Laravel Excel has the following features: Show
If you want to create easy import and export, excel file functionality, this laravel maatwebsite/excel tutorial is best for you. At the end of this tutorial, you will be able to download or import excel & CSV files directly from the database in laravel application. Requirements
Step 1: Install Laravel ProjectFirst, open Terminal and run the following command to create a fresh laravel project:
or, if you have installed the Laravel Installer as a global composer dependency:
Step 2: Configure Database DetailsAfter, Installation Go to the project root directory, open .env file, and set database detail as follow:
Read Also: Laravel 9 CRUD Example Tutorial for Beginners Step 3: Install maatwebsite/excel packageYou can install Laravel Excel via composer. You've to run this command for the installation.
If composer require fails on Laravel 9 because of the 9 dependency, you will have to specify the 0 version as 1 in your composer.json to satisfy the PhpSpreadsheet dependency. You can install both at the same time as:
Register Plugin’s Service in Providers & AliasesYou can have the following code placed inside the config/app.php file.
Execute the vendor, publish the command, and publish the config.
This will create a new config file named 2.Step 4: Generate Fake Data and Migrate TableIn the First step, We migrate the user table. After migration run successfully We moved to the second step.
In the Second Step, We generate the fake record. Here We use tinker to generate the fake records. You can use a different method as of your requirement.
After Opening the tinker, you need to run this command to generate the fake records in our database.
Step 5: Create a RoutesIn this step, We will add a route to handle requests for import and export files. 0Step 6: Create Import ClassMaatwebsite provides a way to build an import class and we have to use it in the controller. So it would be a great way to create a new Import class. So you have to run the following command and change the following code on that file: 1 3 2Here you can see map CSV or excel column value to our Eloquent Model. You need to format that CSV or excel column as you map in your import class. Read Also: How to Install MongoDB on Ubuntu 20.04 Step 7: Create Export ClassMaatwebsite provides a way to build an export class and we have to use it in the controller. So it would be a great way to create a new export class. So you have to run the following command and change the following code on that file: 3 4 4Step 8: Create ControllerNext, We have to create a controller to display a form to upload CSV or excel file records. Let's Create a controller named 5 using the command given below: 5Once the above command execute, it will create a controller file UserController.php in the app/Http/Controllers directory. Open the UserController.php file and put this code into that file. 6Step 9: Create Blade / View FilesWe have reached the last step. In general, here we need to formulate the view for handling importing and exporting through the frontend. Create a resources/views/importFile.blade.php file to set up the view. Place the following code inside the blade view file: 7Run Laravel ApplicationLastly, we have to run the Laravel application, for this, we have to go to the command prompt, and write the following command: 8After executing this command, Open http://localhost:8000/file-import in your browser. Thank you for reading this blog. Read Also: How To Install Vue 3 in Laravel 9 From Scratch If you want to manage your VPS / VM Server without touching the command line go and Checkout this link. ServerAvatar allows you to quickly set up WordPress or Custom PHP websites on VPS / VM in a matter of minutes. You can host multiple websites on a single VPS / VM, configure SSL certificates, and monitor the health of your server without ever touching the command line interface. If you have any queries or doubts about this topic please feel free to contact us. We will try to reach you. |