【发布时间】:2020-01-09 14:07:12
【问题描述】:
我正在尝试使用 laravel 以 excel 格式导出一些数据。但在这种格式中,我想显示一些我不知道的其他行。
<?php
namespace App\Exports;
use App\SalesLog;
use App\SalesLogItem;
use RegistersEventListeners;
use Maatwebsite\Excel\Concerns\FromQuery;
use Maatwebsite\Excel\Concerns\Exportable;
use Maatwebsite\Excel\Concerns\WithHeadings;
use Maatwebsite\Excel\Concerns\ShouldAutoSize;
use App\Helpers\DateHelper;
use Maatwebsite\Excel\Events\AfterSheet;
use Maatwebsite\Excel\Events\BeforeExport;
use Maatwebsite\Excel\Concerns\WithEvents;
use Maatwebsite\Excel\Concerns\WithMapping;
use Maatwebsite\Excel\Concerns\FromCollection;
use PhpOffice\PhpSpreadsheet\Style\NumberFormat;
use Maatwebsite\Excel\Concerns\WithColumnFormatting;
class SalesExport implements FromQuery, WithHeadings,ShouldAutoSize, WithEvents
{
/**
* @return \Illuminate\Support\Collection
*/
use Exportable;
public function __construct( $id, $aircraft_name)
{
$this->id = $id;
$this->aircraft_name=$aircraft_name;
}
public function headings(): array
{
return [
'#No',
'Item Description',
'Unit Type',
'Item Price',
];
}
public function query()
{
return SalesLog::query()->join('sales_log_items','sales_logs.id','sales_log_items.sales_log_id')
->where('sales_log_items.sales_log_id', $this->id)
->select('sales_log_items.product_id','sales_log_items.name','sales_log_items.unit_type','sales_log_items.price');
}
}
public function index($log_id)
{
$flight_nr=SalesLog::find($log_id)->flight_number_one;
$date=date('y-m-d');
$excel_title='sales_log'.$date;
$data=SalesLog::find($log_id);
return (new SalesExport($log_id,$data->aircraft_name))->download($excel_title.'.xlsx');
}
在此代码中,下载了一个 excel 文档,但它只显示了我在方法查询中获取的数据。
我想在开头显示一些页眉,然后在最后显示一个可能包含总数的页脚。有人可以帮我找到要使用的功能吗? 我正在使用 maatwebsite 3.1
【问题讨论】: