我正在尝试使用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
发布于 2020-01-09 22:28:12
您正在使用的Maatwebsite\Excel包允许从刀片视图文件导出。因此,您可以随心所欲地设计视图,制作页眉、页脚,在其中放置一个html <table>,然后将其用于导出。Docs here.
发布于 2020-01-09 22:29:46
Maatwebsite插件在某些情况下不能正常工作,我建议使用"PHPSpreadSheet“,你可以这样做: 1-创建excel文件作为模板2-读取excel文件3-将您的数据添加到excel文件4-保存并下载
$spreadsheet = \PhpOffice\PhpSpreadsheet\IOFactory::load('./reports/template.xlsx');
$worksheet = $spreadsheet->getSheet(0);
$worksheet->getCell('C6')->setValue($sum_variable);
$writer = \PhpOffice\PhpSpreadsheet\IOFactory::createWriter($spreadsheet, 'Xls');
$file_name='result_excel';
$writer->save($file_name);
header('Content-Type: application/vnd.ms-excel');
header('Content-Disposition: attachment; filename="'.$file_name.'"');
$writer->save("php://output");发布于 2020-01-09 22:53:45
这篇文章可能会有所帮助。Click here
https://stackoverflow.com/questions/59665781
复制相似问题