ResearchExpenseMultipleSheetExport.php 965 B

12345678910111213141516171819202122232425262728293031323334353637
  1. <?php
  2. namespace App\Exports;
  3. use Maatwebsite\Excel\Concerns\WithMultipleSheets;
  4. class ResearchExpenseMultipleSheetExport implements WithMultipleSheets
  5. {
  6. protected $sheetsData;
  7. /**
  8. * @param array $sheetsData 现在的格式应该是:
  9. * [
  10. * '2025-RD01' => ['project' => [...], 'data' => [...]],
  11. * '2025-RD02' => ['project' => [...], 'data' => [...]]
  12. * ]
  13. */
  14. public function __construct(array $sheetsData)
  15. {
  16. $this->sheetsData = $sheetsData;
  17. }
  18. public function sheets(): array
  19. {
  20. $sheets = [];
  21. foreach ($this->sheetsData as $sheetTitle => $content) {
  22. $sheets[] = new ResearchExpenseSheetExport(
  23. (string)$sheetTitle,
  24. $content['data'],
  25. $content['project'] ?? [],
  26. $content['dynamic_headers'] ?? [], // 传递动态表头
  27. $content['year']
  28. );
  29. }
  30. return $sheets;
  31. }
  32. }