Backend Development 4 min read

Easy Excel: A PHP Library for Efficient Low‑Memory Excel Read/Write

Easy Excel is a PHP library built on openspout that enables fast, low‑memory reading and writing of xlsx, csv, and ods files, providing installation steps, environment requirements, and code examples for exporting, importing, and handling Excel data in backend applications.

Laravel Tech Community
Laravel Tech Community
Laravel Tech Community
Easy Excel: A PHP Library for Efficient Low‑Memory Excel Read/Write

Easy Excel is a PHP library built on openspout/openspout that provides fast, low‑memory Excel read/write capabilities for xlsx , csv , and ods files.

Environment

PHP >= 7.2

php_zip extension

php_xmlreader extension

openspout/openspout >= 3.0

league/flysystem >= 1.0

Installation

composer require yzh52521/easy-excel

Quick start – Export

Download example:

use Dcat\EasyExcel\Excel;

$array = [
    ['id'=>1, 'name'=>'Brakus', 'email'=>'[email protected]', 'created_at'=>'...'],
    // ...
];
$headings = ['id'=>'ID', 'name'=>'名称', 'email'=>'邮箱'];

Excel::export($array)->headings($headings)->download('users.xlsx');
Excel::export($array)->headings($headings)->download('users.csv');
Excel::export($array)->headings($headings)->download('users.ods');

Save to server:

use Dcat\EasyExcel\Excel;
use League\Flysystem\Adapter\Local;
use League\Flysystem\Filesystem;

Excel::export($array)->store('/tmp/users.xlsx');
$adapter = new Local(__DIR__);
$filesystem = new Filesystem($adapter);
Excel::export($array)->disk($filesystem)->store('users.xlsx');

Quick start – Import

Read all sheets:

use Dcat\EasyExcel\Excel;

$headings = ['id','name','email'];
$allSheets = Excel::import('/tmp/users.xlsx')
    ->headings($headings)
    ->toArray();

Iterate sheets with chunking:

Excel::import('/tmp/users.xlsx')
    ->each(function (SheetInterface $sheet) {
        $sheetName = $sheet->getName();
        $sheetIndex = $sheet->getIndex();
        $isActive = $sheet->isActive();
        $sheet->chunk(100, function (SheetCollection $collection) {
            $chunkArray = $collection->toArray();
            // process $chunkArray
        });
    });

Access specific sheet content:

$firstSheet = Excel::import('/tmp/users.xlsx')->first()->toArray();
$activeSheet = Excel::import('/tmp/users.xlsx')->active()->toArray();
$sheetByName = Excel::import('/tmp/users.xlsx')->sheet('Sheet1')->toArray();
$sheetByIndex = Excel::import('/tmp/users.xlsx')->sheet(0)->toArray();

For more import features, refer to the official documentation.

backendPHPexcelExportImportLow Memoryopenspout
Laravel Tech Community
Written by

Laravel Tech Community

Specializing in Laravel development, we continuously publish fresh content and grow alongside the elegant, stable Laravel framework.

0 followers
Reader feedback

How this landed with the community

login Sign in to like

Rate this article

Was this worth your time?

Sign in to rate
Discussion

0 Comments

Thoughtful readers leave field notes, pushback, and hard-won operational detail here.