沙丁/laravel-presenter-excel

Laravel Presenter 插件,用于响应 MS Excel 文件:XLSX、XLS 和 CSV。

1.0.0 2016-09-11 17:40 UTC

This package is not auto-updated.

Last update: 2024-09-14 19:42:15 UTC


README

Sands Laravel Presenter 插件,用于响应 MS Excel 文件:XLSX、XLS 和 CSV。文件使用Laravel Excel 包生成。

安装

$ composer require sands/laravel-presenter-excel

确保Sands\Presenter 已正确安装。

config/app.phpproviders 数组中,在 Sands\Presenter\PresenterServiceProvider 之后添加 Sands\Presenter\Excel\ExcelPresenterServiceProvider

'providers' => [
     ...
     Sands\Presenter\PresenterServiceProvider::class,
     Sands\Presenter\Excel\ExcelPresenterServiceProvider::class,
     ...
]

使用方法

此插件允许您轻松创建 XLSX、XLS 和 CSV 导出。

假设您有一个 UsersController,其中包含以下方法

public function index()
{
    return $this->present(['users' => User::all()])
        ->setOption('excel.fileName', 'User Reports')
        ->using('blade', 'xlsx', 'csv', 'xls');
}

当用户访问 /users?format=xlsx 时,将提示下载 User Reports.xlsx 文件。

当用户访问 /users?format=xls 时,将提示下载 User Reports.xls 文件。

当用户访问 /users?format=csv 时,将提示下载 User Reports.csv 文件。

XLSX 和 XLS 的数据格式

根据以下示例,XLSX 和 XLS 的数据必须是嵌套的集合

public function csvData()
{
    return [
        "Sheet 1 Name" => [            
            [row 1 data],
            [row 2 data],
            ...
        ],
        ...
    ];
    
    ... or ...
    
    return [
        "Users" => User::all(),
        "Tasks" => Task::all(),
        ...
    ];
}

CSV 的数据格式

根据以下示例,CSV 的数据必须是集合

public function csvData()
{
    return [
        [row 1 data],
        [row 2 data],
        ...
    ];
    
    ... or ...
    
    return User::all();
}

文件属性

可以使用 setOption 方法设置文件属性。可用的属性如下定义在这里

可以通过 excel.fileName 选项更改导出文件的名称。

public function index()
{
    return $this->present()
        ->setOption('data.blade', 'bladeData')
        ->setOption('data.xlsx', 'data')
        ->setOption('excel.fileName', 'User Reports')
        ->setOption('excel.title', 'Exported User Reports')
        ->using('blade', 'xlsx');
}

MIT 许可证

版权所有 (c) 2016 沙丁咨询有限公司

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

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

软件按“现状”提供,不提供任何明示或暗示的保证,包括但不限于适销性、针对特定目的的适用性和非侵权性保证。在任何情况下,作者或版权持有人不对任何索赔、损害或其他责任负责,无论该责任是基于合同、侵权或其他原因,无论该责任是否源于、源于或与软件或软件的使用或其他交易有关。