sukohi / eloquent-export
一个Laravel扩展包,允许您通过Eloquent模型从数据库导出数据。
2.0.3
2020-05-21 09:23 UTC
Requires
- illuminate/support: ^5.7|^6.0|^7.0
- phpoffice/phpspreadsheet: ^1.10
- sukohi/fluent-csv: 3.*
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