PhpSpreadsheet 设置单元格背景色为白色

PhpSpreadsheet set background color of cell to white

使用 PhpSpreadsheet,我想为 excel 单元格设置白色背景。

$cells = 'A1';
$spreadsheet
    ->getActiveSheet()
    ->getStyle($cells)
    ->getFill()
    ->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID)
    ->getStartColor(' #FFFFFF')
    ->setARGB('#FFFFFF');

即使我设置了这个白色 RGB 颜色值,此代码也会使单元格背景变黑:#FFFFFF

我想达到的结果:

当您为 PhpSpreadsheet 指定 ARGB 时,您不必包含 # 符号。这些解决方案将能够将单元格背景设置为白色:

逐个单元格

$spreadsheet
    ->getActiveSheet()
    ->getStyle($cells)
    ->getFill()
    ->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID)
    ->getStartColor()
    ->setARGB('ffffff');

单元格范围

$spreadsheet
    ->getActiveSheet()
    ->getStyle('A1:A5')
    ->getFill()
    ->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID)
    ->getStartColor()
    ->setARGB('ffffff');

通过使用样式数组一次设置几个样式:

styleArray = array(
            'borders' => array(
                'outline' => array(
                    'borderStyle' => Border::BORDER_THICK,
                    'color' => array('argb' => '00000000'),
                ),
            ),
            'fill' => array(
                'fillType' => Fill::FILL_SOLID,
                'startColor' => array('argb' => 'FF4F81BD')
            )
        );
$spreadsheet->getActiveSheet()->applyFromArray($styleArray);

在某些示例中,我们发现 'fill' 而不是 'fillType'。也许这取决于 phpSpreadsheet 的版本。另一个变体是 'color' 而不是 'startColor'.