love_php/app/Exports/Sheets/TestSheetII.php
2026-04-02 09:20:51 +08:00

165 lines
7.3 KiB
PHP
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?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';
}
}