PlannerScheduleExport.php 3.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  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 PlannerScheduleExport 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['is_keywords']) && $value['is_keywords'] == 1) {
  25. $this->list[] = 'F' . ($key + 1);
  26. }
  27. if (isset($value['is_keywords_map']) && $value['is_keywords_map'] == 1) {
  28. $this->list[] = 'G' . ($key + 1);
  29. }
  30. if (isset($value['is_tdk']) && $value['is_tdk'] == 1) {
  31. $this->list[] = 'H' . ($key + 1);
  32. }
  33. if (isset($value['is_keywords_implantation']) && $value['is_keywords_implantation'] == 1) {
  34. $this->list[] = 'I' . ($key + 1);
  35. }
  36. if (isset($value['is_home_planning']) && $value['is_home_planning'] == 1) {
  37. $this->list[] = 'J' . ($key + 1);
  38. }
  39. if (isset($value['is_product_guidance_document']) && $value['is_product_guidance_document'] == 1) {
  40. $this->list[] = 'K' . ($key + 1);
  41. }
  42. if (isset($value['is_inside_page_planning']) && $value['is_inside_page_planning'] == 1) {
  43. $this->list[] = 'L' . ($key + 1);
  44. }
  45. if (isset($value['is_special_page_planning']) && $value['is_special_page_planning'] == 1) {
  46. $this->list[] = 'M' . ($key + 1);
  47. }
  48. $dataList[$key]['is_keywords'] = '关键词初选';
  49. $dataList[$key]['is_keywords_map'] = '关键词地图';
  50. $dataList[$key]['is_tdk'] = 'TDK';
  51. $dataList[$key]['is_keywords_implantation'] = '关键词植入';
  52. $dataList[$key]['is_home_planning'] = '首页策划';
  53. $dataList[$key]['is_product_guidance_document'] = '产品指导交流';
  54. $dataList[$key]['is_inside_page_planning'] = '内页策划';
  55. $dataList[$key]['is_special_page_planning'] = '特殊页策划';
  56. }
  57. }
  58. $this->dataList = $dataList;
  59. }
  60. public function array(): array
  61. {
  62. return $this->dataList;
  63. }
  64. public function registerEvents(): array
  65. {
  66. return [
  67. AfterSheet::class => function (AfterSheet $event) {
  68. $cells = ['A1:M1', 'A2:E2', 'F2:H2', 'I2:M2'];
  69. $this->setCellWidth($event, $cells);
  70. $cells[] = 'A3:M3';
  71. $this->setCellColor($cells, $event);//表头
  72. $this->setCellColorBorders($cells, $event);
  73. $this->setCellColor($this->list, $event, '87CEFA');
  74. }
  75. ];
  76. }
  77. }