sukohi/eloquent-export

一个Laravel扩展包,允许您通过Eloquent模型从数据库导出数据。

2.0.3 2020-05-21 09:23 UTC

This package is auto-updated.

Last update: 2024-09-21 21:29:45 UTC


README

这是一个Laravel扩展包,允许您通过Eloquent模型从您的数据库中导出数据。此包在Laravel 6.x下维护。

安装

执行以下命令。

composer require sukohi/eloquent-export:2.*

安装后,您的Eloquent模型将自动拥有export()方法。

用法

最简单的方法

在您的控制器中调用export()
只需要文件名。

$users = \App\User::get();

// csv
return $users->export('test.csv');

// xlsx
return $users->export('test.xlsx');

// xls
return $users->export('test.xls');

选择列

下载的数据将通过select()方法进行筛选。

$users = \App\User::select('id', 'name', 'email')->get();
$users->export('test.csv);  // Only id, name and email data.

选项

渲染

您可以使用以下方式更改下载的数据,使用键、点符号键、null或回调函数。

$users = \App\User::get();
$options = [
    'render' => [
        'id', // $user->id
        'company.name', // $user->company->name
        null, // blank column
        function($user) {

            return $user->created_at->format('Y.m.d');

        }
    ]
];
return $users->export('test.xls', $options);

编码

您可以在下载CSV文件时指定编码来转换数据。

$options = ['encoding' => 'sjis-win'];
return $users->export('test.csv', $options);

附加数据

$users = \App\User::get();
$options = [
    'prepend' => [
        ['header - 1', 'header - 2', 'header - 3']
    ],
    'append' => [
        ['footer - 1', 'footer - 2', 'footer - 3']
    ]
];
return $users->export('test.xls', $options);

许可证

此包采用MIT许可证。

版权所有2019 Sukohi Kuhoh