maatwebsite/laravel-excel-light

此包已被放弃,不再维护。作者建议使用 maatwebsite/excel 包。

使用 Spout 的速度,在 Laravel 中以更快速和更简洁的方式导入和导出 Excel 和 CSV。

dev-master 2017-11-23 13:22 UTC

This package is auto-updated.

Last update: 2022-02-01 13:01:15 UTC


README

没有进一步开发和/或支持的计划。这只是改进 Laravel-Excel 库的一个实验。

使用 Spout 的速度,在 Laravel 中以更快速和更简洁的方式导入和导出 Excel 和 CSV。

安装

composer require maatwebsite/laravel-excel-light

在 app.php 中添加 Service Provider

Maatwebsite\ExcelLight\LaravelExcelServiceProvider::class

可以将 Excel 类注入到你的服务中

public function __construct(\Maatwebsite\ExcelLight\Excel $excel)

可选地,您还可以注入 Reader 和 Writer

public function __construct(\Maatwebsite\ExcelLight\Reader $reader)
public function __construct(\Maatwebsite\ExcelLight\Writer $writer)

读取

流畅使用

$excel->load(storage_path('workbook.xlsx'), function (Reader $reader) {
    $reader->sheets(function (Sheet $sheet) {
        $sheet->rows(function (Row $row) {

            // Get a column
            $row->column('heading_key');

            // Magic get
            $row->heading_key;

            // Array access
            $row['heading_key'];
        });
    });
});

经典使用

$reader = $excel->load(storage_path('workbook.xlsx'));

foreach ($reader->sheets() as $sheet) {
    foreach ($sheet->rows() as $row) {

        $row->column('heading_key');

        foreach ($row->cells() as $cell) {

        }
    }
}

写入

$excel->create(function (Writer $writer) {
    $writer->sheet('sheet1', function (Writer $sheet) {
        $sheet->rows([
            [1, 2, 3],
            [4, 5, 6]
        ]);

        // Add more rows
        $sheet->rows([
            [7, 8, 9],
            [10, 11, 12]
        ]);
    });
})->export(storage_path('workbook.xlsx'));

自定义读取器和写入器

注册自定义读取器

$this->app->make(\Maatwebsite\ExcelLigt\ExcelManager::class)
    ->registerReader('driverName', function() {
        return YourReader();
    });

注册自定义写入器

$this->app->make(\Maatwebsite\ExcelLigt\ExcelManager::class)
    ->registerWriter('driverName', function() {
        return YourWriter();
    });

解析自定义读取器和写入器

__construct(ExcelManager $manager) {
    $reader = $manager->reader('driverName');
    $writer = $manager->writer('driverName');
}