PhpOffice\PhpSpreadsheet导出excel样式设置操作

632 阅读1分钟

1、字体

$sheet->getStyle('B1')->getFont()->setBold(true);//将B1单元格设置为粗体字
$sheet->getStyle('A7:B7')->getFont()->setBold(true)->setName('Arial')
            ->setSize(10);//将A7至B7两单元格设置为粗体字,Arial字体,10号字

2、改变字体颜色

$sheet->getStyle('A1')->getFont()->getColor()->setARGB(\PhpOffice\PhpSpreadsheet\Style\Color::COLOR_RED);//将A1单元格文字颜色设为红色

3、设置列宽

$sheet->getColumnDimension('A')->setWidth(20);//将A列的宽度设为20(字符)
$sheet->getColumnDimension('B')->setAutoSize(true);//将B列的宽度设为自动宽度
$sheet->getDefaultColumnDimension()->setWidth(12);//设置默认列宽为12

4:设置行高(两个不能同时使用)

$sheet->getRowDimension('10')->setRowHeight(100);//将第十行的高度设为100pt
$sheet->getDefaultRowDimension()->setRowHeight(50);//设置默认行高为20

5:对齐

$sheet->getStyle('A:D')->getAlignment()
->setVertical(\PhpOffice\PhpSpreadsheet\Style\Alignment::VERTICAL_CENTER) //设置垂直居中
->setHorizontal(\PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_CENTER) //设置水平居中
->setWrapText(true); //设置自动换行
居中
$sheet->getStyle('A:N')->getAlignment()
            ->setHorizontal(\PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_CENTER) //设置水平居中
            ->setWrapText(true); //设置自动换行
左对齐
 $sheet->getStyle('A3:A4')->getAlignment()
            ->setHorizontal(\PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_LEFT) //设置左对齐
            ->setWrapText(true); //设置自动换行

6、合并单元格

$sheet->mergeCells('A1:D2');//A1到D2合并为一个单元格

7、将合并后的单元格拆分

$sheet->unmergeCells('A1:D2');//将合并后的单元格拆分。

8、使用applyFromArray实现单元格样式设置

//样式变量
$style = [
//设置字体样式
'font' => [
        'name' => 'Arial',
        'bold' => true,
        'italic' => false,
        'underline' => Font::UNDERLINE_DOUBLE,
        'strikethrough' => false,
        'color' => [
            'rgb' => '808080'
        ]
    ],
//设置边框线样式
'borders' => [
         //allBorders所有的边框线样式
         //左边框线
       'bottom' => [
           'borderStyle' => Border::BORDER_DASHDOT,
           'color' => [
              'rgb' => '808080'
            ]
       ],
         //上边框线
       'top' => [
           'borderStyle' => Border::BORDER_DASHDOT,
           'color' => [
               'rgb' => '808080'
           ]
       ]
],
//对齐样式
'alignment' => [
   'horizontal' => Alignment::HORIZONTAL_CENTER,
   'vertical' => Alignment::VERTICAL_CENTER,
   'wrapText' => true,
],
//是否使用前缀
'quotePrefix'    => true
];
$sheet->getStyle('A1:D1')->applyFromArray($style);

9.黑边框

$styleArray = [
            'borders' => [
                'allBorders' => [
                    'borderStyle' => Border::BORDER_THIN //黑边框
                ]
            ]
];
$sheet->getStyle('A1:N1')->applyFromArray($styleArray);

10.白边框

$styleArray = [
     'borders' => [
                'allBorders' => [
                    'borderStyle' => Border::BORDER_THIN, //黑边框
                    'color' => array ('argb' => 'FFFFFFFF')
                ]
     ]
];
 
$sheet->getStyle('A1:N1')->applyFromArray($styleArray);

11.细边框

$styleArray = [
    'borders' => [
  		'allBorders' => [
            'borderStyle' => Border::BORDER_THIN //细边框
        ]
   	 ]
];
  
$worksheet->getStyle('A1:N1')->applyFromArray($styleArray);