ResearchExpenseMultipleSheetExport.php 992 B

123456789101112131415161718192021222324252627282930313233343536
  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. // 将每一个唯一的 Key (年份-项目) 传给具体的 Sheet 类
  23. $sheets[] = new ResearchExpenseSheetExport(
  24. (string)$sheetTitle, // 这里的 title 会显示在 Excel 标签页上
  25. $content['data'],
  26. $content['project'] ?? []
  27. );
  28. }
  29. return $sheets;
  30. }
  31. }