165 lines
7.3 KiB
PHP
165 lines
7.3 KiB
PHP
|
|
<?php
|
|||
|
|
namespace App\Exports\Sheets;
|
|||
|
|
|
|||
|
|
use Maatwebsite\Excel\Concerns\FromCollection;
|
|||
|
|
use Maatwebsite\Excel\Concerns\WithTitle;
|
|||
|
|
use Maatwebsite\Excel\Concerns\WithEvents;
|
|||
|
|
use Maatwebsite\Excel\Concerns\WithColumnFormatting;
|
|||
|
|
use PhpOffice\PhpSpreadsheet\Style\NumberFormat;
|
|||
|
|
use Maatwebsite\Excel\Concerns\WithColumnWidths;
|
|||
|
|
use Maatwebsite\Excel\Concerns\WithStrictNullComparison;
|
|||
|
|
use Maatwebsite\Excel\Events\AfterSheet;
|
|||
|
|
use Maatwebsite\Excel\Concerns\ShouldAutoSize;
|
|||
|
|
|
|||
|
|
class TestSheetII implements FromCollection, WithTitle, WithEvents, WithStrictNullComparison, ShouldAutoSize
|
|||
|
|
{
|
|||
|
|
private $data;
|
|||
|
|
|
|||
|
|
public function __construct($data)
|
|||
|
|
{
|
|||
|
|
$this->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';
|
|||
|
|
}
|
|||
|
|
}
|