devlover/laravel-excel-zip

1.1.0 2020-05-12 23:03 UTC

This package is auto-updated.

Last update: 2024-09-13 08:48:11 UTC


README

注意:这是一个处于非常早期阶段的包,旨在成为laravel-excel-zip包的后继者。它最初作为分支开始,因为我们需要Laravel 6.0的兼容性。我会尽力让它与Laravel 6及更高版本兼容。

laravel-excel-zip

download excels wrap in zip laravel-excel-zip是一个用于下载大型Excel文件的解决方案。你可以定义何时将Excel分块打包成zip文件。

安装

composer require devlover/laravel-excel-zip -vvv

使用方法

运行命令以创建config/excel_zip.php

php artisan vendor:publish --provider="Devlover\ExcelZip\ExcelZipServiceProvider"

导出

在你的Export中使用自定义集合,并且不要定义collection函数

<?php

use Devlover\ExcelZip\WithZipCollection;
use Maatwebsite\Excel\Concerns\FromCollection;

class MemberExport implements FromCollection
{
    use WithZipCollection;
}

控制器

<?php

use Devlover\ExcelZip\ExcelZip;
use App\Http\Controllers\Controller;

class MemberController extends Controller
{
    // chunk by database(better!)
    public function export1(ExcelZip $excelZip, MemberExport $export)
    {
        $excelZip = $excelZip->setExport($export);
    
        Member::chunk(5000, function ($members) use ($excelZip) {
            $excelZip->excel($members);
        });
    
        return $excelZip->zip();
    }
    
    // chunk in laravel-excel-zip
    public function export2(ExcelZip $excelZip, MemberExport $export)
    {
        return $excelZip->download(Member::all(), $export);
    }
}