How to Read Excel Files in Laravel

Reading Excel files in Laravel is a common task for web developers who need to work with data that is stored in spreadsheets. In this article, we will explore how to read Excel files in Laravel using the PHPExcel library.

PHPExcel is a PHP library for working with Excel files. It allows you to read, write, and manipulate Excel files programmatically. The library is easy to use and provides a wide range of features for working with Excel files.

To get started with PHPExcel, you need to install the library using Composer. Run the following command in your Laravel project directory to install PHPExcel:

composer require phpoffice/phpexcel

After the installation is complete, you can start using the library to read Excel files in Laravel.

Reading an Excel File in Laravel

Here are the steps to read an Excel file in Laravel using PHPExcel:

Import the PHPExcel classes

Before you can use the PHPExcel library in your Laravel project, you need to import the necessary classes. Add the following line at the top of your PHP file:

use PHPExcel_IOFactory;
Load the Excel file

To read an Excel file in Laravel, you first need to load the file using the load() method of the PHPExcel_IOFactory class. Here is an example code snippet that shows how to load an Excel file:

$file = public_path('path/to/your/file.xlsx'); 
$excel = PHPExcel_IOFactory::load($file);

Replace path/to/your/file.xlsx with the path to your Excel file.

Get the worksheet data

After you have loaded the Excel file, you can get the data from the worksheet by calling the getActiveSheet() method of the PHPExcel object. This method returns a PHPExcel_Worksheet object that represents the active worksheet in the Excel file. Here is an example code snippet that shows how to get the worksheet data:

$worksheet = $excel->getActiveSheet(); 
$rows = $worksheet->toArray();

The toArray() method returns the data from the worksheet as an array. Each row in the worksheet is represented by an array of values.

Use the data

You can now use the data in your Laravel application. For example, you can pass the data to a view and display it in a table. Here is an example code snippet that shows how to pass the data to a view:

return view('excel', ['rows' => $rows]);

In this example, the excel view is passed an array of rows called $rows. You can modify the view to display the data in a table.

Sample Code

<?php 
namespace App\Http\Controllers
use Illuminate\Http\Request
use PHPExcel_IOFactory
class ExcelController extends Controller 
    public function readExcel(
    
        $file = public_path('path/to/your/file.xlsx'); 
        $excel = PHPExcel_IOFactory::load($file); 
        $worksheet = $excel->getActiveSheet(); 
        $rows = $worksheet->toArray(); 
        // Use the data as needed 
        return view('excel', ['rows' => $rows]); 
    
}

In this example, we have created a readExcel method in the ExcelController class that reads an Excel file and returns the data to a view. The public_path method is used to get the full path to the Excel file.

The data is returned to a view called excel using the view function. The view is passed an array of rows called $rows.

You can modify this code to fit your specific needs, such as using a different filename or passing the data to a different destination.