-
Notifications
You must be signed in to change notification settings - Fork 3.6k
Closed
Description
This is:
- [x] a bug report
- [ ] a feature request
- [ ] **not** a usage question (ask them on https://stackoverflow.com/questions/tagged/phpspreadsheet or https://gitter.im/PHPOffice/PhpSpreadsheet)
What is the expected behavior?
Style can be set on a whole column, regardless of wether or not the column contains data.
What is the current behavior?
Style can be set on a whole column, only for the cells not having data.
What are the steps to reproduce?
Please provide a Minimal, Complete, and Verifiable example of code that exhibits the issue without relying on an external Excel file or a web server:
<?php
require __DIR__ . '/vendor/autoload.php';
use PhpOffice\PhpSpreadsheet\Spreadsheet;
use PhpOffice\PhpSpreadsheet\Style\Fill;
use PhpOffice\PhpSpreadsheet\Writer\Xlsx;
$rgb = '4467b8';
// 1. Set values before style
$spreadsheet = new Spreadsheet();
$spreadsheet->getActiveSheet()->fromArray(['OK', 'KO']);
// "CELL" style is always OK
$spreadsheet->getActiveSheet()->getStyle('A1')->getFill()
->setFillType(Fill::FILL_SOLID)
->getStartColor()->setRGB($rgb);;
// "COLUMN" style is KO because value is already set
$spreadsheet->getActiveSheet()->getStyle('B')->getFill()
->setFillType(Fill::FILL_SOLID)
->getStartColor()->setRGB($rgb);
var_dump($spreadsheet->getActiveSheet()->getCell('A1')->getStyle()->getFill()->getStartColor()->getRGB());
// string(6) "4467b8"
var_dump($spreadsheet->getActiveSheet()->getCell('B1')->getStyle()->getFill()->getStartColor()->getRGB());
// string(6) "FFFFFF"
$xlsx = new Xlsx($spreadsheet);
$xlsx->save('/tmp/ko.xlsx');
// 2. Set values after style
$spreadsheet = new Spreadsheet();
// "CELL" style is always OK
$spreadsheet->getActiveSheet()->getStyle('A1')->getFill()
->setFillType(Fill::FILL_SOLID)
->getStartColor()->setRGB($rgb);;
// "COLUMN" style is OK because value is not set yet
$spreadsheet->getActiveSheet()->getStyle('B')->getFill()
->setFillType(Fill::FILL_SOLID)
->getStartColor()->setRGB($rgb);
$spreadsheet->getActiveSheet()->fromArray(['OK', 'KO']);
var_dump($spreadsheet->getActiveSheet()->getCell('A1')->getStyle()->getFill()->getStartColor()->getRGB());
// string(6) "4467b8"
var_dump($spreadsheet->getActiveSheet()->getCell('B1')->getStyle()->getFill()->getStartColor()->getRGB());
// string(6) "4467b8"
$xlsx = new Xlsx($spreadsheet);
$xlsx->save('/tmp/ok.xlsx');Which versions of PhpSpreadsheet and PHP are affected?
At least PHP 7.3.3 and PhpSpreadsheet latest (v1.15)
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels
