ProgressRateExport.php 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. <?php
  2. /**
  3. * Created by PhpStorm.
  4. * User: Administrator
  5. * Date: 2019/9/24 0024
  6. * Time: 13:38
  7. */
  8. namespace App\Exports;
  9. use Maatwebsite\Excel\Concerns\FromArray;
  10. use Maatwebsite\Excel\Concerns\Exportable;
  11. use Maatwebsite\Excel\Concerns\ShouldAutoSize;//自动宽度
  12. use Maatwebsite\Excel\Events\AfterSheet;
  13. use Maatwebsite\Excel\Concerns\WithEvents;
  14. class ProgressRateExport extends CommonExport implements FromArray, WithEvents//,ShouldAutoSize
  15. {
  16. use Exportable;
  17. public $dataList;
  18. public $list;
  19. public function __construct(array $dataList)
  20. {
  21. $this->list = [];
  22. foreach ($dataList as $key => $value) {
  23. if ($key >= 3) {
  24. if (isset($value['info']) && $value['info'] == 1) {
  25. $this->list[] = 'H' . ($key + 1);
  26. }
  27. if (isset($value['prophase']) && $value['prophase'] == 1) {
  28. $this->list[] = 'I' . ($key + 1);
  29. }
  30. if (isset($value['data']) && $value['data'] == 1) {
  31. $this->list[] = 'J' . ($key + 1);
  32. }
  33. if (isset($value['test']) && $value['test'] == 1) {
  34. $this->list[] = 'K' . ($key + 1);
  35. }
  36. if (isset($value['online']) && $value['online'] == 1) {
  37. $this->list[] = 'L' . ($key + 1);
  38. }
  39. if (isset($value['is_keywords']) && $value['is_keywords'] == 1) {
  40. $this->list[] = 'M' . ($key + 1);
  41. }
  42. if (isset($value['is_keywords_map']) && $value['is_keywords_map'] == 1) {
  43. $this->list[] = 'N' . ($key + 1);
  44. }
  45. if (isset($value['is_tdk']) && $value['is_tdk'] == 1) {
  46. $this->list[] = 'O' . ($key + 1);
  47. }
  48. if (isset($value['page_planning']) && $value['page_planning'] == 1) {
  49. $this->list[] = 'P' . ($key + 1);
  50. }
  51. $dataList[$key]['info'] = $value['domain'];
  52. $dataList[$key]['prophase'] = '建站前期';
  53. $dataList[$key]['data'] = '资料';
  54. $dataList[$key]['test'] = '测试站';
  55. $dataList[$key]['online'] = '上线';
  56. $dataList[$key]['is_keywords'] = '关键词初选';
  57. $dataList[$key]['is_keywords_map'] = '关键词地图';
  58. $dataList[$key]['is_tdk'] = 'TDK';
  59. $dataList[$key]['page_planning'] = '页面策划';
  60. unset($dataList[$key]['domain']);
  61. }
  62. }
  63. $this->dataList = $dataList;
  64. }
  65. public function array(): array
  66. {
  67. return $this->dataList;
  68. }
  69. public function registerEvents(): array
  70. {
  71. return [
  72. AfterSheet::class => function (AfterSheet $event) {
  73. $cells = ['A1:P1', 'A2:H2', 'I2:L2', 'M2:P2'];
  74. $this->setCellWidth($event, $cells);
  75. $cells[] = 'A3:P3';
  76. $this->setCellColor($cells, $event);//表头
  77. $this->setCellColorBorders($cells, $event);
  78. $this->setCellColor($this->list, $event, '87CEFA');
  79. }
  80. ];
  81. }
  82. }