Reputation: 1976
Using PhpSpreadsheet, I want to set a white background to the excel cell.
$cells = 'A1';
$spreadsheet
->getActiveSheet()
->getStyle($cells)
->getFill()
->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID)
->getStartColor(' #FFFFFF')
->setARGB('#FFFFFF');
This code makes the cell background black even if I set this white RGB color value: #FFFFFF
.
The result I would like to achieve:
Upvotes: 22
Views: 64540
Reputation: 1976
You don't have to include the #
symbol when you specify the ARGB for PhpSpreadsheet. These solutions will be able to set the cell background to white:
$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');
Upvotes: 54
Reputation: 335
By using a style array to set few styles at once:
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);
In some examples, we find 'fill' instead of 'fillType'. Perhaps it depends on version of phpSpreadsheet. Another variant is 'color' instead of 'startColor'.
Upvotes: 13