data = $data; } /** * @return Builder */ public function collection() { $data = $this->data; $birthday = \CommonUtilsService::checkCardBirhday($data[2]); $age = \CommonUtilsService::getAge($birthday['tdate']); $rows = [ ['医学观察解除审批表', '', '','','','','',''], ['姓名', $data[0], '性别', $data[1],'年龄',$age,'观察开始日期','6月7日'], ['集中医学 观察地点', '赤壁市铜锣湾酒店集中隔离医学观察点', '', '', '最后暴露 时间', '6月7日','',''], ['解除隔离目的地', $data[4], '', '', '身份证号', strval($data[2]).' ','',''], ['联系电话', $data[3], '', '', '病例类型', '中高风险地区返赤 (上海)', '', ''], ['隔离观察点临床医生意见', ' 该留观人员于6月7日入住赤壁市铜锣湾酒店集中隔离医学观察点,隔离期间6次核酸检测及4次抗原检测(间隔时间超过24小时)均正常,隔离期间无发热,咳嗽,腹泻等症状。 签字: 年 月 日', '','','','','',''], ['观察点会商意见', ' 签字: 年 月 日', '', '', '', '','',''], ['指挥部医疗组意见', '', '', '','','','',''], ['隔离点落实情况', '隔离点负责人签字: 年 月 日','','','','','',''], ]; return collect($rows); } public function registerEvents(): array { return [ AfterSheet::class => function(AfterSheet $event) { //设置列宽 $arr = ['A','B','C','D','E','F','G', 'H']; foreach ($arr as $value) { $event->sheet->getDelegate()->getColumnDimension($value)->setWidth(20); } //设置行高,$i为数据行数 for ($i = 0; $i<=5; $i++) { $event->sheet->getDelegate()->getRowDimension($i)->setRowHeight(30); } for ($i = 6; $i<=9; $i++) { $event->sheet->getDelegate()->getRowDimension($i)->setRowHeight(90); } //设置区域单元格垂直居中 $event->sheet->getDelegate()->getStyle('A1:K1265')->getAlignment()->setVertical('center'); //设置区域单元格水平居中 $event->sheet->getDelegate()->getStyle('A1:K1265')->getAlignment()->setHorizontal('center'); // $event->sheet->getDelegate()->getStyle('B7')->getAlignment()->setVertical('bottom'); // $event->sheet->getDelegate()->getStyle('A11:F18')->getAlignment()->setHorizontal('center'); //自动换行 $event->sheet->getStyle('A1:H9')->getAlignment()->setWrapText(TRUE); //设置区域单元格字体、颜色、背景等,其他设置请查看 applyFromArray 方法,提供了注释 $event->sheet->getDelegate()->getStyle('A1:H9')->applyFromArray([ 'borders'=> [ 'allBorders' => [ 'borderStyle' =>'thin', ] ] ]); $event->sheet->getDelegate()->getStyle('1')->applyFromArray([ 'font' => [ 'name' => 'Arial', 'bold' => true, 'italic' => false, 'strikethrough' => false, 'size' => 20, 'color' => [ 'rgb' => '000000' ], ], // 'fill' => [ // 'fillType' => 'linear', //线性填充,类似渐变 // 'rotation' => 45, //渐变角度 // 'startColor' => [ // 'rgb' => '000000' //初始颜色 // ], // //结束颜色,如果需要单一背景色,请和初始颜色保持一致 // 'endColor' => [ // 'argb' => 'FFFFFF' // ] // ], ]); $event->sheet->getDelegate()->getStyle('2:9')->applyFromArray([ 'font' => [ 'name' => 'Arial', 'bold' => false, 'italic' => false, 'strikethrough' => false, 'size' => 12, 'color' => [ 'rgb' => '000000' ], ], ]); //合并单元格 $event->sheet->getDelegate()->mergeCells('A1:H1'); // // $event->sheet->getDelegate()->mergeCells('B2:F2'); $event->sheet->getDelegate()->mergeCells('B3:D3'); $event->sheet->getDelegate()->mergeCells('F3:H3'); $event->sheet->getDelegate()->mergeCells('B4:D4'); $event->sheet->getDelegate()->mergeCells('F4:H4'); $event->sheet->getDelegate()->mergeCells('B5:D5'); $event->sheet->getDelegate()->mergeCells('F5:H5'); $event->sheet->getDelegate()->mergeCells('B6:H6'); $event->sheet->getDelegate()->mergeCells('B7:H7'); $event->sheet->getDelegate()->mergeCells('B8:H8'); $event->sheet->getDelegate()->mergeCells('B9:H9'); // $event->sheet->getDelegate()->mergeCells('B5:F5'); // $event->sheet->getDelegate()->mergeCells('B6:F6'); // $event->sheet->getDelegate()->mergeCells('D7:F7'); // $event->sheet->getDelegate()->mergeCells('C8:F8'); // $event->sheet->getDelegate()->mergeCells('A9:F9'); // $event->sheet->getDelegate()->mergeCells('A11:F11'); // $event->sheet->getDelegate()->mergeCells('B13:F13'); // $event->sheet->getDelegate()->mergeCells('B14:F14'); // $event->sheet->getDelegate()->mergeCells('B15:F15'); // $event->sheet->getDelegate()->mergeCells('B16:F16'); // $event->sheet->getDelegate()->mergeCells('D17:F17'); // $event->sheet->getDelegate()->mergeCells('C18:F18'); // $event->sheet->getDelegate()->mergeCells('A19:F19'); } ]; } /** * @return string */ public function title(): string { return ($this->data)[0].'__sheet'; } }