mahmoud-m-abadi/excel-export-with-relations

支持多关系的 Laravel Excel 导出

dev-master 2021-07-23 13:52 UTC

This package is auto-updated.

Last update: 2024-09-23 20:43:42 UTC


README

本包使用 maatwebsite/excel 来生成 Excel 报告。

安装

要安装包,请复制以下链接。
composer require mahmoud-m-abadi/excel-export-with-relations

要求

  • PHP 版本 >= 7.3
  • Laravel 8

描述

假设您有一个 User 模型,Post 模型和 Post Comment 模型。User 有多个帖子,每个帖子有多个评论,您想创建一个包含所有关系的 Excel 文件导出报告。

现在您可以使用此包中的以下 Export 类来创建控制器

MahmoudMAbadi\ExcelExportWithRelation\Exports\ExcelExportWithRelations

您要导出的目标模型必须实现 ModelExportableInterface 接口,以便使用此包进行导出。例如:如果您想从 User 模型导出,您需要将 ModelExportableInterface 类添加到 UserModel。您还可以使用 ModelExportableTrait 来创建相关函数或替换为您自己的。

实际上,我已经附带了控制器、模型和路由的示例。您可以检查文件以确保正确执行过程。

控制器示例

<?php

namespace MahmoudMAbadi\ExcelExportWithRelation\Http\Controllers;

use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use MahmoudMAbadi\ExcelExportWithRelation\Exports\ExcelExportWithRelations;
use MahmoudMAbadi\ExcelExportWithRelation\Models\UserExport;

class ExcelExportController extends Controller
{
    /**
    * @param Request $request
    * @return \Illuminate\Http\Response|\Symfony\Component\HttpFoundation\BinaryFileResponse
    */
    public function __invoke(Request $request)
    {
        return (new ExcelExportWithRelations(new UserExport()))->download('users.xlsx');
    }
}

您可以在包中检查 UserExport 模型以了解那里都做了什么。

许可证

此包在 MIT 许可下发布。

版权 (c) 2012-2017 Markus Poerschke

特此授予任何获得本软件及其相关文档副本(以下简称“软件”)的人免费使用软件的权利,不受任何限制,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或出售软件副本的权利,并允许向软件提供者提供软件的人这样做,前提是遵守以下条件:

上述版权声明和本许可声明应包含在软件的所有副本或主要部分中。

软件按“原样”提供,不提供任何明示或暗示的保证,包括但不限于适销性、针对特定目的的适用性和非侵权性保证。在任何情况下,作者或版权所有者均不对任何索赔、损害或其他责任承担责任,无论这种责任是基于合同、侵权或其他方式,源于、涉及或与本软件或软件的使用或其他交易有关。