为 Laravel 提供增强的 Excel 导出和导入功能

3.1.7 2019-02-07 20:35 UTC

README

Laravel Excel

Laravel Excel 3.1

Laravel Excel - 10 Million Downloads

🎉 庆祝 1000 万次下载。了解更多关于 Laravel 的 5 年历程,请访问我们的博客!

💪 🔥 🚀

增强的 Excel 导出和导入功能
简单而优雅地包装了 PhpSpreadsheet,旨在简化导出和导入操作。

Build Status StyleCI Latest Stable Version Total Downloads License

快速入门 · 文档 · Nova · 博客 · 贡献 · 支持

  • 轻松将集合导出到 Excel。 增强您的 Laravel 集合,并直接将其导出到 Excel 或 CSV 文档。导出从未如此简单。

  • 增强的导出。 使用自动分块导出查询以提高性能。您提供查询,我们处理性能。需要导出更大的数据集?无需担忧,Laravel Excel 会为您提供支持。您可以排队导出,所有这些操作将在后台进行。

  • 增强的导入。 使用分块读取和批量插入将工作簿和工作表导入 Eloquent 模型!文件很大?您可以排队每个文件块!您的整个导入操作将在后台进行。

  • 导出 Blade 视图。 想要在电子表格中拥有自定义布局?在 Blade 视图中使用 HTML 表格并将其导出到 Excel。

🚀 5 分钟快速开始导出

💡 在您的 Laravel 项目的 composer.json 中添加此包。这将下载包和 PhpSpreadsheet。

composer require maatwebsite/excel

💪 在 App/Exports 中创建一个导出类

php artisan make:export UsersExport --model=User

这将创建以下内容

<?php

namespace App\Exports;

use App\User;
use Maatwebsite\Excel\Concerns\FromCollection;

class UsersExport implements FromCollection
{
    public function collection()
    {
        return User::all();
    }
}

🔥 在您的控制器中现在可以调用此导出

use App\Exports\UsersExport;
use Maatwebsite\Excel\Facades\Excel;
use App\Http\Controllers\Controller;

class UsersController extends Controller 
{
    public function export() 
    {
        return Excel::download(new UsersExport, 'users.xlsx');
    }
}

📄 在您的下载文件夹中找到 users.xlsx

更多安装说明请参阅:https://laravel-excel.maatwebsite.nl/3.1/getting-started/installation.html

🚀 5 分钟快速开始导入

💪 在 App/Imports 中创建一个导入类

您可以使用 make:import 命令来完成此操作。

php artisan make:import UsersImport --model=User

如果您更喜欢手动创建导入,您可以在 App/Imports 中创建以下内容

<?php

namespace App\Imports;

use App\User;
use Illuminate\Support\Facades\Hash;
use Maatwebsite\Excel\Concerns\ToModel;

class UsersImport implements ToModel
{
    /**
     * @param array $row
     *
     * @return User|null
     */
    public function model(array $row)
    {
        return new User([
           'name'     => $row[0],
           'email'    => $row[1], 
           'password' => Hash::make($row[2]),
        ]);
    }
}

🔥 在您的控制器中现在可以调用此导入

use App\Imports\UsersImport;
use Maatwebsite\Excel\Facades\Excel;
use App\Http\Controllers\Controller;

class UsersController extends Controller 
{
    public function import() 
    {
        Excel::import(new UsersImport, 'users.xlsx');
        
        return redirect('/')->with('success', 'All good!');
    }
}

📄 在您的数据库中找到导入的用户!

🎓 学习 Laravel Excel

您可以在网站上找到 Laravel Excel 的完整文档 此处

我们欢迎对改进文档的建议。文档存储库可以在 此处 找到。

在我们的博客中可以找到一些文章和教程:此处

🔧 支持的版本

版本将在有限的时间内得到支持。

📬 许可证 & Postcardware

我们的软件是开源的,并使用 MIT 许可证。

如果您在生产环境中使用本软件,我们将非常感谢收到一张您家乡的明信片。请将它寄至:

Maatwebsite
Florijnruwe 111-2
6218 CA Maastricht
荷兰

有关许可证的更多信息,请参阅: https://laravel-excel.maatwebsite.nl/3.1/getting-started/license.html