ManActivityTimeCardMultipleSheetExport.php 924 B

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