[Laravel-Excel中文文档] maatwebsite/excel映射处理导出数据以及设置导出标题
Song •
2485 次浏览 •
0个评论 •
2022年03月21日
映射行
通过添加WithMapping您映射需要添加为行的数据。这样您就可以控制每列的实际来源。如果使用 Eloquent 查询构建器:
use Maatwebsite\Excel\Concerns\FromQuery;
use Maatwebsite\Excel\Concerns\WithMapping;
class InvoicesExport implements FromQuery, WithMapping
{
/**
* @var Invoice $invoice
*/
public function map($invoice): array
{
return [
$invoice->invoice_number,
$invoice->user->name,
Date::dateTimeToExcel($invoice->created_at),
];
}
}多行
您还可以在 map 函数中返回多行:
use Maatwebsite\Excel\Concerns\FromQuery;
use Maatwebsite\Excel\Concerns\WithMapping;
class InvoicesExport implements FromQuery, WithMapping
{
/**
* @var Invoice $invoice
*/
public function map($invoice): array
{
// This example will return 3 rows.
// First row will have 2 column, the next 2 will have 1 column
return [
[
$invoice->invoice_number,
Date::dateTimeToExcel($invoice->created_at),
],
[
$invoice->lines->first()->description,
],
[
$invoice->lines->last()->description,
]
];
}
}添加标题行
通过添加WithHeadings关注点可以轻松添加标题行。标题行将添加为工作表的第一行。
use Maatwebsite\Excel\Concerns\FromQuery;
use Maatwebsite\Excel\Concerns\WithHeadings;
class InvoicesExport implements FromQuery, WithHeadings
{
public function headings(): array
{
return [
'#',
'User',
'Date',
];
}
}如果您需要有多个标题行,您可以从该headings()方法返回多行:
use Maatwebsite\Excel\Concerns\FromQuery;
use Maatwebsite\Excel\Concerns\WithHeadings;
class InvoicesExport implements FromQuery, WithHeadings
{
public function headings(): array
{
return [
['First row', 'First row'],
['Second row', 'Second row'],
];
}
}准备行
如果您需要在将这些行附加到工作表之前准备行,您可以将方法添加prepareRows到导出类。此方法将在展平查询输出和调用之前调用map()。
use Maatwebsite\Excel\Concerns\FromQuery;
use Maatwebsite\Excel\Concerns\WithHeadings;
class UsersExport implements FromQuery, WithHeadings
{
public function prepareRows($rows)
{
return $rows->transform(function ($user) {
$user->name .= ' (prepared)';
return $user;
});
}
}
-
[Laravel-Excel中文文档] 使用queued队列实现后端分批次导出大量数据 2022-03-21 -
[Laravel-Excel中文文档] Laravel从Modal数据中query查询数据并导出 2022-03-19 -
JS/Jquery/Vue使用localResizeIMG插件PC/移动端本地图片压缩 2022-03-08 -
[Laravel-Excel中文文档] 实现Excel/CSV文件导出教程 2022-03-05 -
Laravel 如何设置Modal不自动更新created_at和updated_at 2022-03-05

所以SheetJS实现table导出数据为Excel