Home > Web Development > Laravel Tutorials > Import Excel and CSV files to MySQL with Laravel.

Import Excel and CSV files to MySQL with Laravel.

Diego Cortés
Diego Cortés
January 20, 2025
Import Excel and CSV files to MySQL with Laravel.

Importing data from Excel and CSV files into MySQL databases is a common task in web development. Many developers seek efficient methods to perform this operation in their applications. In this article, we will explore a simple approach using Laravel, a popular PHP framework, making it easier to integrate these file formats into your database.

Preparation for Import

Before starting the import, make sure you have your Laravel environment set up and a MySQL database ready to receive the data. It is also important to have the Excel or CSV files you wish to import.

Installing Dependencies

Laravel offers several libraries that can facilitate file imports. The most commonly used is the maatwebsite/excel library. To install this dependency, you should run the following command in your terminal:

composer require maatwebsite/excel

This library allows for the easy import and export of Excel and CSV files, streamlining the process of working with tabular data.

Project Setup

Creating a New Migration

After installing the dependency, the next step is to create a migration for the table where you want to store the data. You can do this using the Artisan command:

php artisan make:migration create_your_table

Make sure to define the appropriate columns in the migration according to the structure of the file you will import. Once you’ve defined the columns, execute the migration with the following command:

php artisan migrate

Defining the Model

Next, create a model that corresponds to the database table. You can use the following command:

php artisan make:model YourModel

Ensure that the model is properly configured to interact with the table you just created.

Importing Excel and CSV Files

Creating the Importer

Now it’s time to create an importer that will handle the import logic. Run this command:

php artisan make:import YourImporter --model=YourModel

Within the importer, you can utilize the functions provided by maatwebsite/excel. For example, to work with a collection of data, you can define the model method in your importer, allowing Laravel to handle the insertion into the database.

Handling Files and Routes

To receive the files in your application, you need to create a form in a view that allows the user to upload the documents. Remember to define a route in your routes file to handle this action.

Route::post('/import', [YourController::class, 'import']);

In your controller, use the importer you created earlier to process the received file.

Testing the Import

To ensure everything works correctly, conduct tests by uploading Excel and CSV files containing test data. Verify that the data is correctly imported into your database by checking in PHPMyAdmin or through migrations in your application.

Conclusions

Importing Excel and CSV files into a MySQL database using Laravel may seem like a complicated process, but with the right tools and careful planning, it can be done easily and efficiently. With the steps we have reviewed, now you have a solid framework to start importing your data without any headaches.

If you are interested in learning more about web development and using tools like Laravel, I invite you to explore more news on my blog. There is always something new to discover!

Diego Cortés
Diego Cortés
Full Stack Developer, SEO Specialist with Expertise in Laravel & Vue.js and 3D Generalist

Categories

Page loaded in 23.23 ms