рдореИрдВ рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдореМрдЬреВрджрд╛ рдлрд╝рд╛рдЗрд▓ рдХреЛ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рдЕрдм рдореИрдВ рдЗрд╕ рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд▓рд┐рдП, рдЗрд╕ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдЖрд╕рд╛рдиреА рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рдХрд╕рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдореИрдВ рдЬрд╛рдирдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдкреНрд▓рдЧрдЗрди рдХреЗ рдЕрдВрджрд░ рдХреЗ рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдФрд░ function resisterEvents()
рд╕рд╛рде рдЦреЗрд▓рдирд╛ рдореИрдВ рдЗрд╕реЗ рд╕реНрд╡рдпрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВред
рдореБрдЭреЗ рдПрдХ рдореМрдЬреВрджрд╛ рдлрд╝рд╛рдЗрд▓ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреА рд╣реИ рдФрд░ рдПрдХ рд╢реАрдЯ рдХрд╛ рдЪрдпрди рдХрд░рдирд╛ рд╣реИред рд▓реЗрдХрд┐рди рдЗрд╕реЗ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВред
рдпрд╣ рдореЗрд░рд╛ рдХреЛрдб рд╣реИ:
/**
* <strong i="16">@return</strong> array
*/
public function registerEvents(): array
{
return [
BeforeWriting::class => function(BeforeWriting $event) {
$event->writer->reopen(storage_path('app/public/files/mytemplate.xlsx'),Excel::XLSX);
$event->writer->getSheetByIndex(0);
return $event->getWriter()->getSheetByIndex(0);
}
];
}
рдХреБрдЫ рд╕реБрдЭрд╛рд╡?
рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рдж
рдореИрдВрдиреЗ function resisterEvents()
рдХреЗ рдЕрдВрджрд░ рдЗрд╕ рдХреЛрдб рдХреЗ рд╕рд╛рде рдПрдХ рдореВрд▓реНрдп рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдЬреЛрдбрд╝рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рдФрд░ рдХрд╛рдо рдирд╣реАрдВ рдХрд┐рдпрд╛:
AfterSheet::class => function(AfterSheet $event) {
$event->sheet->setCellValue('G2', 'Hello world');
}
рдФрд░ function query()
рдорд╛рдзреНрдпрдо рд╕реЗ рдбреЗрдЯрд╛ рд╕рдВрд▓рдЧреНрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рднреА
рдЕрдВрдд рдореЗрдВ рдЗрд╕рдиреЗ рдореЗрд░реЗ рд▓рд┐рдП 3.1.0 рд╕рдВрд╕реНрдХрд░рдг рдкрд░ рдХрд╛рдо рдХрд┐рдпрд╛ред рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдВрд╕реНрдХрд░рдг 3.1.10 рдореЗрдВ рдпрд╣ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рдХреНрдпреЛрдВрдХрд┐ reopen
рдлрд╝рдВрдХреНрд╢рди рдмрджрд▓ рдЧрдпрд╛ рд╣реИред рдирдП рдЕрдкрдбреЗрдЯ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдореЗрдВ рдФрд░ рдореМрдЬреВрджрд╛ рдлрд╝рд╛рдЗрд▓ рдХреЗ рд╕рдВрдкрд╛рджрди рдореЗрдВ рд╕реБрдзрд╛рд░ред
->reopen()
рдПрдХ рдЖрдВрддрд░рд┐рдХ рддрд░реАрдХрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рд╕рд╛рд╡рдзрд╛рдиреА рдХреЗ рд╕рд╛рде рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЖрдк рд╢рд╛рдпрдж рдЗрд╕реЗ рдлрд┐рд░ рд╕реЗ рдЦреЛрд▓рдиреЗ рдХреЗ рд▓рд┐рдП new LocalTemporaryFile(storage_path('app/public/files/mytemplate.xlsx'))
рдкрд╛рд╕ рдХрд░рдХреЗ рдХрд╛рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдореМрдЬреВрджрд╛ рдлрд╝рд╛рдЗрд▓реЛрдВ (рдЯреЗрдореНрдкреНрд▓реЗрдЯ) рдХрд╛ рд╕рдВрдкрд╛рджрди рд╣рдорд╛рд░реЗ рд░реЛрдбрдореИрдк (рд╕рдВрд╕реНрдХрд░рдг 3.3) рдкрд░ рд╣реИ, рд▓реЗрдХрд┐рди рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд░рд┐рд▓реАрдЬрд╝ рдбреЗрдЯ рдХреЗ рдмрд┐рдирд╛ред
рдпрджрд┐ рдЖрдкрдХреЛ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рдХреГрдкрдпрд╛ рд╣рдорд╛рд░реЗ рд╡рд╛рдгрд┐рдЬреНрдпрд┐рдХ рд╕рд╣рд╛рдпрддрд╛ рдЕрдиреБрднрд╛рдЧ: https://laravel-excel.com/commercial-support рдкрд░ рдПрдХ рдирдЬрд╝рд░ рдбрд╛рд▓реЗрдВред
рдЗрд╕ рддреНрд╡рд░рд┐рдд рдЙрддреНрддрд░ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред
рдореИрдВ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдХреЛрд╢рд┐рд╢ рдХрд░реВрдВрдЧрд╛ред
рдпрд╣ рдЕрднреА рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВ рдкрд░реАрдХреНрд╖рдг рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдХреНрдпреЛрдВрдХрд┐ рдореБрдЭреЗ рдореИрдХреНрд░реЛрдЬрд╝ рдФрд░ рдбрд╛рдпрдиреЗрдорд┐рдХ рдЯреЗрдмрд▓ рдХреЗ рд╕рд╛рде рдореМрдЬреВрджрд╛ рдПрдХреНрд╕реЗрд▓ рдореЗрдВ рдбреЗрдЯрд╛ рдЬреЛрдбрд╝рдиреЗ, рдбреЗрдЯрд╛ рдЬреЛрдбрд╝рдиреЗ рдФрд░ рдПрдХреНрд╕реЗрд▓ рдлрд╝рд╛рд░реНрдореБрд▓реЛрдВ рдХреА рдкреБрдирд░реНрдЧрдгрдирд╛ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред рдореИрдВ рдпрд╣ рд╕рдм рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдХреНрдпреЛрдВрдХрд┐ рдореБрдЭреЗ рдкрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдПрдХ рдЬрдЯрд┐рд▓ рдПрдХреНрд╕реЗрд▓ рдХреЗ рд╕рд╛рде рдХрд░рдирд╛ рдЖрд╕рд╛рди рдирд╣реАрдВ рд╣реИред
рдЕрдЧрд░ рдореБрдЭреЗ рдХреБрдЫ рдЕрдЪреНрдЫрд╛ рд▓рдЧрд╛ рддреЛ рдореИрдВ рдЖрдкрдХреЛ рд░рд┐рдкреЛрд░реНрдЯ рдХрд░реВрдВрдЧрд╛
рдЕрдкрдбреЗрдЯ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдХреГрдкрдпрд╛ рдЬрд▓реНрдж рд╕реЗ рдЬрд▓реНрдж рдЯрд┐рдкреНрдкрдгреА рдХрд░реЗрдВ
рдирдорд╕реНрдХрд╛рд░, @MarFelixред рдореБрдЭреЗ рдПрдХ рд╣реА рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝ рд░рд╣рд╛ рдерд╛ рдФрд░ рдЕрдм рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рдХрд╛рдордХрд╛рдЬ рд╣реИ рдЬрд┐рд╕рдХрд╛ рдореИрдВ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рдпрд╣ рдЖрдкрдХреА рдорджрдж рдХрд░ рд╕рдХрддрд╛ рд╣реИред
рдореИрдВрдиреЗ рдпрд╣ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдирд┐рд░реНрдпрд╛рдд рдХреИрд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдпрд╣ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП рдореИрдВрдиреЗ рдореИрдЯрд╡реАрдХ рдХреЛрдб рдореЗрдВ рдЧрд╣рд░реА рдЦреБрджрд╛рдИ рдХреАред рддреЛ рдлрд╝рд╛рдЗрд▓ рдХреЛ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдЗрд╕ рдЪрд░рдг рдХреЛ рдпрд╛рдж рд░рдЦреЗрдВ:
Export
Excel
рдХрдХреНрд╖рд╛ рдкрд╛рд╕ рдХрд░рдиреЗ рд╡рд╛рд▓реА download
рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реИ)Excel
рд╡рд░реНрдЧ рдпрд╣ рдкрд╣рдЪрд╛рдирддрд╛ рд╣реИ рдХрд┐ рдХрд┐рд╕ Writer
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рдЗрд╕ Writer
рдореЗрдВ export
рд╡рд┐рдзрд┐ рдХреЛ рдХреЙрд▓ рдХрд░реЗрдВредWriter
рдЕрдкрдирд╛ Export
Writer
рдЦреЛрд▓реЗрдВ (рдФрд░ BeforeExport
рдИрд╡реЗрдВрдЯ рдкрд░ рдХреЙрд▓ рдХрд░реЗрдВ), рдлрд┐рд░ рдПрдХ рдирдИ рд╢реАрдЯ рдкреЙрдкреНрдпреБрд▓реЗрдЯ рдХрд░реЗрдВ, рдлрд┐рд░ рдЕрдкрдиреА write
рд╡рд┐рдзрд┐ рдХреЛ рдХреЙрд▓ рдХрд░реЗрдВредwrite
рд╡рд┐рдзрд┐ ( Writer
рд╡рд░реНрдЧ) BeforeWriting
рдИрд╡реЗрдВрдЯ рдХреЛ рдХреЙрд▓ рдХрд░реЗрдЧреА рдФрд░ XLSX рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдЕрдиреНрдп рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рд▓рд┐рдП рдлрд╝рд╛рдЗрд▓ рдкрд░ рд▓рд┐рдЦреЗрдЧреАрдЗрд╕рд▓рд┐рдП BeforeWriting
рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдпрджрд┐ рдЖрдк рдЗрд╕реЗ BeforeExport
рдкрд░ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ рддреЛ рдпрд╣ рдХрд╛рдо рдХрд░реЗрдЧрд╛ рд▓реЗрдХрд┐рди рдПрдХ рдирдИ рд╢реАрдЯ рдореЗрдВред
рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдХреЗ рд▓рд┐рдП рдореИрдВ рдирд┐рд░реНрдпрд╛рдд рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рдзрд┐ рдкрд░ рдПрдХ рдзреНрд╡рдЬ рдЬреЛрдбрд╝рддрд╛ рд╣реВрдВ (рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдЪрдпрди рд╕реЗ)ред рдЗрд╕ рддрд░рд╣ рдпрд╣ рдЪрд░рдг 2 рдкрд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдирд╣реАрдВ рд╣реЛрдЧреАред рдлрд┐рд░, BeforeWriting
рдореИрдВ рдзреНрд╡рдЬ рдХреЛ рдЪрд┐рд╣реНрдирд┐рдд рдХрд░рддрд╛ рд╣реВрдВ, рд╡рд╛рдВрдЫрд┐рдд рд╢реАрдЯ рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реВрдВ рдФрд░ рдЙрд╕ рдкрд░ export
рд╡рд┐рдзрд┐ рдХреЛ рдХреЙрд▓ рдХрд░рддрд╛ рд╣реВрдВред
рд╡рд╣ рдХреЛрдб рд╣реИ:
public function collection()
{
if ($this->calledByEvent) { // flag
return $this->myCollectionToExport;
}
return collect([]);
}
public function registerEvents(): array
{
return [
BeforeWriting::class => function(BeforeWriting $event) {
$templateFile = new LocalTemporaryFile(storage_path('app/public/files/mytemplate.xlsx'));
$event->writer->reopen($templateFile, Excel::XLSX);
$event->writer->getSheetByIndex(0);
$this->calledByEvent = true; // set the flag
$event->writer->getSheetByIndex(0)->export($event->getConcernable()); // call the export on the first sheet
return $event->getWriter()->getSheetByIndex(0);
},
];
}
download
рдФрд░ write
рддрд░реАрдХреЛрдВ рдкрд░ рдПрдХ рдирдЬрд╝рд░ рдбрд╛рд▓реЗрдВ Maatwebsite\Excel\Writer
, рдпрд╣ рдмрд╣реБрдд рдорджрджрдЧрд╛рд░ рд╣реЛрдЧрд╛ред
рдЗрд╕ рдЬрд╛рдирдХрд╛рд░реА рдФрд░ рдЪрд░рдгреЛрдВ рдХреЗ рд╕рд╛рде, рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рд╕рдорд╛рдзрд╛рди рдмрдирд╛рдирд╛ рд╕рдВрднрд╡ рд╣реЛрдЧрд╛ред
рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА
->reopen()
рдПрдХ рдЖрдВрддрд░рд┐рдХ рддрд░реАрдХрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рд╕рд╛рд╡рдзрд╛рдиреА рдХреЗ рд╕рд╛рде рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЖрдк рд╢рд╛рдпрдж рдЗрд╕реЗ рдлрд┐рд░ рд╕реЗ рдЦреЛрд▓рдиреЗ рдХреЗ рд▓рд┐рдПnew LocalTemporaryFile(storage_path('app/public/files/mytemplate.xlsx'))
рдкрд╛рд╕ рдХрд░рдХреЗ рдХрд╛рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВредрдореМрдЬреВрджрд╛ рдлрд╝рд╛рдЗрд▓реЛрдВ (рдЯреЗрдореНрдкреНрд▓реЗрдЯ) рдХрд╛ рд╕рдВрдкрд╛рджрди рд╣рдорд╛рд░реЗ рд░реЛрдбрдореИрдк (рд╕рдВрд╕реНрдХрд░рдг 3.3) рдкрд░ рд╣реИ, рд▓реЗрдХрд┐рди рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд░рд┐рд▓реАрдЬрд╝ рдбреЗрдЯ рдХреЗ рдмрд┐рдирд╛ред
рдпрджрд┐ рдЖрдкрдХреЛ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рдХреГрдкрдпрд╛ рд╣рдорд╛рд░реЗ рд╡рд╛рдгрд┐рдЬреНрдпрд┐рдХ рд╕рд╣рд╛рдпрддрд╛ рдЕрдиреБрднрд╛рдЧ: https://laravel-excel.com/commercial-support рдкрд░ рдПрдХ рдирдЬрд╝рд░ рдбрд╛рд▓реЗрдВред