Skip to main content

Overview

The Fill class controls cell background colors and fill patterns, including solid colors, gradients, and various pattern fills.

Namespace

PhpOffice\PhpSpreadsheet\Style\Fill

Getting a Fill Object

// Via Style object
$fill = $spreadsheet->getActiveSheet()->getStyle('A1')->getFill();

// Via chaining
$spreadsheet->getActiveSheet()->getStyle('A1')
    ->getFill()
    ->setFillType(Fill::FILL_SOLID)
    ->getStartColor()->setARGB('FFFF0000');

Constants

Fill Types

FILL_NONE
string
default:"'none'"
No fill
FILL_SOLID
string
default:"'solid'"
Solid color fill
FILL_GRADIENT_LINEAR
string
default:"'linear'"
Linear gradient fill
FILL_GRADIENT_PATH
string
default:"'path'"
Path gradient fill

Pattern Fill Types

FILL_PATTERN_DARKDOWN
string
default:"'darkDown'"
Dark diagonal lines going down
FILL_PATTERN_DARKGRAY
string
default:"'darkGray'"
Dark gray pattern
FILL_PATTERN_DARKGRID
string
default:"'darkGrid'"
Dark grid pattern
FILL_PATTERN_DARKHORIZONTAL
string
default:"'darkHorizontal'"
Dark horizontal lines
FILL_PATTERN_DARKTRELLIS
string
default:"'darkTrellis'"
Dark trellis pattern
FILL_PATTERN_DARKUP
string
default:"'darkUp'"
Dark diagonal lines going up
FILL_PATTERN_DARKVERTICAL
string
default:"'darkVertical'"
Dark vertical lines
FILL_PATTERN_GRAY0625
string
default:"'gray0625'"
6.25% gray pattern
FILL_PATTERN_GRAY125
string
default:"'gray125'"
12.5% gray pattern
FILL_PATTERN_LIGHTDOWN
string
default:"'lightDown'"
Light diagonal lines going down
FILL_PATTERN_LIGHTGRAY
string
default:"'lightGray'"
Light gray pattern
FILL_PATTERN_LIGHTGRID
string
default:"'lightGrid'"
Light grid pattern
FILL_PATTERN_LIGHTHORIZONTAL
string
default:"'lightHorizontal'"
Light horizontal lines
FILL_PATTERN_LIGHTTRELLIS
string
default:"'lightTrellis'"
Light trellis pattern
FILL_PATTERN_LIGHTUP
string
default:"'lightUp'"
Light diagonal lines going up
FILL_PATTERN_LIGHTVERTICAL
string
default:"'lightVertical'"
Light vertical lines
FILL_PATTERN_MEDIUMGRAY
string
default:"'mediumGray'"
Medium gray pattern

Properties

fillType
string
default:"'none'"
Fill type (use FILL_* constants)
rotation
float
default:"0.0"
Rotation angle in degrees (for gradient fills)
startColor
Color
Start color (for solid fills, this is the main color)
endColor
Color
End color (for gradient fills)

Methods

getFillType()

Get the fill type.
public function getFillType(): ?string

setFillType()

Set the fill type.
public function setFillType(string $fillType): static
fillType
string
required
Fill type (use FILL_* constants)
Example:
$fill->setFillType(Fill::FILL_SOLID);
$fill->setFillType(Fill::FILL_GRADIENT_LINEAR);
$fill->setFillType(Fill::FILL_PATTERN_DARKGRAY);

getRotation()

Get gradient rotation angle.
public function getRotation(): float

setRotation()

Set gradient rotation angle in degrees.
public function setRotation(float $angleInDegrees): static
angleInDegrees
float
required
Rotation angle in degrees
Example:
$fill->setRotation(45.0);  // 45 degree angle
$fill->setRotation(90.0);  // 90 degree angle

getStartColor()

Get the start color (or main color for solid fills).
public function getStartColor(): Color

setStartColor()

Set the start color.
public function setStartColor(Color $color): static
color
Color
required
Color object
Example:
use PhpOffice\PhpSpreadsheet\Style\Color;

$color = new Color('FFFF0000');
$fill->setStartColor($color);

// Or use the existing color object
$fill->getStartColor()->setARGB('FFFF0000');

getEndColor()

Get the end color (for gradient fills).
public function getEndColor(): Color

setEndColor()

Set the end color.
public function setEndColor(Color $color): static
color
Color
required
Color object
Example:
$fill->getEndColor()->setARGB('FF0000FF');

applyFromArray()

Apply multiple fill settings at once.
public function applyFromArray(array $styleArray): static
styleArray
array
required
Array containing fill style information
Example:
$fill->applyFromArray([
    'fillType' => Fill::FILL_GRADIENT_LINEAR,
    'rotation' => 90.0,
    'startColor' => [
        'rgb' => '000000'
    ],
    'endColor' => [
        'argb' => 'FFFFFFFF'
    ]
]);

// For solid fills, you can use 'color' as shorthand
$fill->applyFromArray([
    'fillType' => Fill::FILL_SOLID,
    'color' => [
        'rgb' => 'FFFF00'
    ]
]);

Complete Examples

Solid Color Fills

use PhpOffice\PhpSpreadsheet\Spreadsheet;
use PhpOffice\PhpSpreadsheet\Style\Fill;
use PhpOffice\PhpSpreadsheet\Style\Color;

$spreadsheet = new Spreadsheet();
$sheet = $spreadsheet->getActiveSheet();

// Method 1: Using setters
$fill = $sheet->getStyle('A1')->getFill();
$fill->setFillType(Fill::FILL_SOLID)
     ->getStartColor()->setARGB('FFFF0000'); // Red background

// Method 2: Using applyFromArray
$sheet->getStyle('B1')->getFill()->applyFromArray([
    'fillType' => Fill::FILL_SOLID,
    'startColor' => [
        'argb' => 'FF00FF00' // Green background
    ]
]);

// Method 3: Using 'color' shorthand
$sheet->getStyle('C1')->getFill()->applyFromArray([
    'fillType' => Fill::FILL_SOLID,
    'color' => [
        'rgb' => '0000FF' // Blue background
    ]
]);

Gradient Fills

// Linear gradient from red to blue
$sheet->getStyle('A2')->getFill()->applyFromArray([
    'fillType' => Fill::FILL_GRADIENT_LINEAR,
    'rotation' => 90.0,
    'startColor' => [
        'argb' => 'FFFF0000' // Red
    ],
    'endColor' => [
        'argb' => 'FF0000FF' // Blue
    ]
]);

// Path gradient
$sheet->getStyle('A3')->getFill()->applyFromArray([
    'fillType' => Fill::FILL_GRADIENT_PATH,
    'startColor' => ['rgb' => 'FFFF00'],
    'endColor' => ['rgb' => 'FF00FF']
]);

Pattern Fills

// Dark gray pattern
$sheet->getStyle('A4')->getFill()->applyFromArray([
    'fillType' => Fill::FILL_PATTERN_DARKGRAY
]);

// Light grid pattern
$sheet->getStyle('A5')->getFill()->applyFromArray([
    'fillType' => Fill::FILL_PATTERN_LIGHTGRID,
    'startColor' => ['rgb' => '000000'],
    'endColor' => ['rgb' => 'FFFFFF']
]);

// Diagonal lines
$sheet->getStyle('A6')->getFill()->applyFromArray([
    'fillType' => Fill::FILL_PATTERN_DARKDOWN
]);

Header Row with Background

// Create header with colored background
$headerStyle = [
    'font' => [
        'bold' => true,
        'color' => ['rgb' => 'FFFFFF']
    ],
    'fill' => [
        'fillType' => Fill::FILL_SOLID,
        'startColor' => ['rgb' => '4472C4']
    ]
];

$sheet->getStyle('A1:E1')->applyFromArray($headerStyle);

Alternating Row Colors

// Zebra striping for better readability
for ($row = 2; $row <= 20; $row++) {
    if ($row % 2 == 0) {
        $sheet->getStyle("A{$row}:E{$row}")->getFill()->applyFromArray([
            'fillType' => Fill::FILL_SOLID,
            'startColor' => ['rgb' => 'F2F2F2'] // Light gray
        ]);
    }
}

Highlight Cells Based on Condition

// Highlight negative values with red background
for ($row = 2; $row <= 10; $row++) {
    $value = $sheet->getCell("C{$row}")->getValue();
    if ($value < 0) {
        $sheet->getStyle("C{$row}")->getFill()->applyFromArray([
            'fillType' => Fill::FILL_SOLID,
            'startColor' => ['rgb' => 'FFC7CE'] // Light red
        ]);
    }
}

Traffic Light Colors

// Red
$sheet->getStyle('A1')->getFill()->applyFromArray([
    'fillType' => Fill::FILL_SOLID,
    'color' => ['rgb' => 'FF0000']
]);

// Yellow
$sheet->getStyle('A2')->getFill()->applyFromArray([
    'fillType' => Fill::FILL_SOLID,
    'color' => ['rgb' => 'FFFF00']
]);

// Green
$sheet->getStyle('A3')->getFill()->applyFromArray([
    'fillType' => Fill::FILL_SOLID,
    'color' => ['rgb' => '00FF00']
]);

Remove Fill

// Set fill to none
$sheet->getStyle('A1')->getFill()->setFillType(Fill::FILL_NONE);

Common Use Cases

Table Header

$sheet->getStyle('A1:D1')->applyFromArray([
    'fill' => [
        'fillType' => Fill::FILL_SOLID,
        'color' => ['rgb' => '366092']
    ],
    'font' => [
        'bold' => true,
        'color' => ['rgb' => 'FFFFFF']
    ]
]);

Warning Cell

$sheet->getStyle('A1')->applyFromArray([
    'fill' => [
        'fillType' => Fill::FILL_SOLID,
        'color' => ['rgb' => 'FFF2CC'] // Light yellow
    ]
]);

Error Cell

$sheet->getStyle('A1')->applyFromArray([
    'fill' => [
        'fillType' => Fill::FILL_SOLID,
        'color' => ['rgb' => 'FFC7CE'] // Light red
    ]
]);

Success Cell

$sheet->getStyle('A1')->applyFromArray([
    'fill' => [
        'fillType' => Fill::FILL_SOLID,
        'color' => ['rgb' => 'C6EFCE'] // Light green
    ]
]);

See Also

Build docs developers (and LLMs) love