123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990 |
- <?php
- namespace App\Exports;
- use PhpOffice\PhpSpreadsheet\Style\Border;
- use PhpOffice\PhpSpreadsheet\Style\Fill;
- class CommonExport
- {
- protected function setCellWidth($event, $cells)
- {
- //设置列宽
- $event->sheet->getDelegate()->getColumnDimension('A')->setWidth(5);
- $event->sheet->getDelegate()->getColumnDimension('B')->setWidth(35);
- $event->sheet->getDelegate()->getColumnDimension('C')->setWidth(30);
- $event->sheet->getDelegate()->getColumnDimension('D')->setWidth(25);
- $event->sheet->getDelegate()->getColumnDimension('E')->setWidth(25);
- $event->sheet->getDelegate()->getColumnDimension('F')->setWidth(20);
- $event->sheet->getDelegate()->getColumnDimension('G')->setWidth(20);
- $event->sheet->getDelegate()->getColumnDimension('H')->setWidth(20);
- $event->sheet->getDelegate()->getColumnDimension('I')->setWidth(20);
- $event->sheet->getDelegate()->getColumnDimension('J')->setWidth(20);
- $event->sheet->getDelegate()->getColumnDimension('K')->setWidth(20);
- $event->sheet->getDelegate()->getColumnDimension('L')->setWidth(20);
- $event->sheet->getDelegate()->getColumnDimension('M')->setWidth(20);
- $event->sheet->getDelegate()->getColumnDimension('N')->setWidth(20);
- $event->sheet->getDelegate()->getColumnDimension('O')->setWidth(20);
- $event->sheet->getDelegate()->getColumnDimension('P')->setWidth(20);
- $event->sheet->getDelegate()->getColumnDimension('Q')->setWidth(20);
- $event->sheet->getDelegate()->getColumnDimension('R')->setWidth(20);
- $event->sheet->getDelegate()->getColumnDimension('S')->setWidth(20);
- for ($i = 0; $i <= 1000; $i++) {
- $event->sheet->getDelegate()->getRowDimension($i)->setRowHeight(30);
- }
- foreach ($cells as $k => $v) {
- //设置区域单元格垂直居中
- $event->sheet->getDelegate()->getStyle($v)->getAlignment()->setVertical('center');
- //设置区域单元格水平居中
- $event->sheet->getDelegate()->getStyle($v)->getAlignment()->setHorizontal('center');
- $event->sheet->getDelegate()->mergeCells($v);
- }
- }
- protected function setCellColor($cells, $event, $rgb = 'acc8cc')
- {
- foreach ($cells as $cell) {
- //设置区域单元格字体、颜色、背景等,其他设置请查看 applyFromArray 方法,提供了注释
- $event->sheet->getDelegate()->getStyle($cell)->applyFromArray([
- 'font' => [
- 'name' => 'Arial',
- 'bold' => true,
- 'italic' => false,
- 'strikethrough' => false,
- 'color' => [
- 'rgb' => '000000'
- ]
- ],
- 'fill' => [
- 'fillType' => Fill::FILL_SOLID, //线性填充,类似渐变
- 'rotation' => 0, //渐变角度
- 'startColor' => [
- 'rgb' => $rgb //初始颜色
- ],
- //结束颜色,如果需要单一背景色,请和初始颜色保持一致
- 'endColor' => [
- 'argb' => $rgb
- ]
- ]
- ]);
- }
- }
- protected function setCellColorBorders($cells, $event)
- {
- foreach ($cells as $cell) {
- $event->sheet->getDelegate()->getStyle($cell)->getBorders()->applyFromArray(
- [
- 'allBorders' => [
- 'borderStyle' => Border::BORDER_THIN,
- 'color' => [
- 'rgb' => '5F9EA0'
- ]
- ]
- ]
- );
- }
- }
- }
|