ManActivityTimeCardMultipleSheetExport.php 991 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. <?php
  2. namespace App\Exports;
  3. use Maatwebsite\Excel\Concerns\WithMultipleSheets;
  4. class ManActivityTimeCardMultipleSheetExport implements WithMultipleSheets
  5. {
  6. protected $projectsData;
  7. protected $year;
  8. /**
  9. * @param array $projectsData 格式为:[
  10. * 'RD01项目名' => [ [...行数据1], [...行数据2] ],
  11. * 'RD02项目名' => [ [...行数据1], [...行数据2] ],
  12. * ]
  13. * @param string $year
  14. */
  15. public function __construct(array $projectsData, string $year = '2024')
  16. {
  17. $this->projectsData = $projectsData;
  18. $this->year = $year;
  19. }
  20. /**
  21. * 定义多个 Sheet
  22. */
  23. public function sheets(): array
  24. {
  25. $sheets = [];
  26. foreach ($this->projectsData as $projectName => $data) {
  27. // 每一项都实例化之前写的那个 ProjectAnnualSalaryExport
  28. $sheets[] = new ManActivityTimeCardSheetExport($projectName, $data, $this->year);
  29. }
  30. return $sheets;
  31. }
  32. }