Problem
Excel’s color palette contains 56 colors, all of which can be accessed and most of which can be replaced using ExcelWriter (v6 or later). This post describes the layout of the palette and enumerate the default palette colors.
This content is most pertinent to the Excel 2003 color palette, which only has 56 colors. In Excel 2007 and later, workbooks can support millions of colors, but there is still an underlying workbook palette that has 56 colors. For more information about colors in multiple versions of Excel, we have enough post about workbook colors that are not displayed properly in older versions of Excel.
Solution
The palette is split up into a few different sections:
- 40 Standard colors, which includes 8 system colors
- 8 Chart fill colors
- 8 Chart line colors
The 40 standard colors are available in all color selection dialogs in Excel, including the drop-down dialogs on the Formatting toolbar. In ExcelWriter, they can all be accessed through the Palette class’s “get” methods. The system colors can also be accessed through the Palette.SystemColor enumeration. For example:
//--- Get black using the SystemColor enumeration Color black = Palette.SystemColor.Black;
Chart Fills and Chart Lines are what Excel uses when automatically setting fill and line colors on charts. Chart fills and lines not limited to these colors however. These colors are available as options in Patterns and Chart color dialogs (i.e. Format > Cells > Patterns). In ExcelWriter, all Chart fill and line colors can be accessed and replaced using the Palette’s “get” and “set” methods.
All standard and chart colors can be replaced with other colors using the Palette class’s “set” methods except for the system colors. For example:
//--- Replace color at index 4 with RGB values (162, 221, 138) wb.Palette.SetColorAt(4, 162, 221, 138);
This would be equivalent to changing the color palette in Excel through Tools > Options > Color.
Palette Color Reference Charts
Provided below are two views of the default palette. The first is ordered by palette index, and the second is similar to how the palette is displayed from within Excel.
The colors in order of palette index
//--- Get the color at palette index 9 Color darkGreen = wb.Palette.GetColorAt(9);
The RGB and HEX equivalents of each color are provided
Palette Index | Color | RGB | HEX | System Color |
---|---|---|---|---|
0 | 0, 0, 0 | #000000 | Black | |
1 | 255, 255, 255 | #FFFFFF | White | |
2 | 255, 0, 0 | #FF0000 | Red | |
3 | 0, 255, 0 | #00FF00 | Green | |
4 | 0, 0, 255 | #0000FF | Blue | |
5 | 255, 255, 0 | #FFFF00 | Yellow | |
6 | 255, 0, 255 | #FF00FF | Magenta | |
7 | 0, 255, 255 | #00FFFF | Cyan | |
8 | 128, 0, 0 | #800000 | ||
9 | 0, 128, 0 | #008000 | ||
10 | 0, 0, 128 | #000080 | ||
11 | 128, 128, 0 | #808000 | ||
12 | 128, 0, 128 | #800080 | ||
13 | 0, 128, 128 | #008080 | ||
14 | 192, 192, 192 | #C0C0C0 | ||
15 | 128, 128, 128 | #808080 | ||
16 | 153, 153, 255 | #9999FF | Chart Fills | |
17 | 153, 51, 102 | #993366 | ||
18 | 255, 255, 204 | #FFFFCC | ||
19 | 204, 255, 255 | #CCFFFF | ||
20 | 102, 0, 102 | #660066 | ||
21 | 255, 128, 128 | #FF8080 | ||
22 | 0, 102, 204 | #0066CC | ||
23 | 204, 204, 255 | #CCCCFF | ||
24 | 0, 0, 128 | #000080 | Chart Lines | |
25 | 255, 0, 255 | #FF00FF | ||
26 | 255, 255, 0 | #FFFF00 | ||
27 | 0, 255, 255 | #00FFFF | ||
28 | 128, 0, 128 | #800080 | ||
29 | 128, 0, 0 | #800000 | ||
30 | 0, 128, 128 | #008080 | ||
31 | 0, 0, 255 | #0000FF | ||
32 | 0, 204, 255 | #00CCFF | ||
33 | 204, 255, 255 | #CCFFFF | ||
34 | 204, 255, 204 | #CCFFCC | ||
35 | 255, 255, 153 | #FFFF99 | ||
36 | 153, 204, 255 | #99CCFF | ||
37 | 255, 153, 204 | #FF99CC | ||
38 | 204, 153, 255 | #CC99FF | ||
39 | 255, 204, 153 | #FFCC99 | ||
40 | 51, 102, 255 | #3366FF | ||
41 | 51, 204, 204 | #33CCCC | ||
42 | 153, 204, 0 | #99CC00 | ||
43 | 255, 204, 0 | #FFCC00 | ||
44 | 255, 153, 0 | #FF9900 | ||
45 | 255, 102, 0 | #FF6600 | ||
46 | 102, 102, 153 | #666699 | ||
47 | 150, 150, 150 | #969696 | ||
48 | 0, 51, 102 | #003300 | ||
49 | 51, 153, 102 | #339966 | ||
50 | 0, 51, 0 | #003300 | ||
51 | 51, 51, 0 | #333300 | ||
52 | 153, 51, 0 | #993300 | ||
53 | 153, 51, 102 | #993366 | ||
54 | 51, 51, 153 | #333399 | ||
55 | 51, 51, 51 | #333333 |
* The colors as displayed in Excel *
The following is similar to how the palette is displayed in Excel. To find the RGB and HEX equivalents, simply match up the palette index to the chart above.
Excel Palette / Palette Indexes | ||||||||
---|---|---|---|---|---|---|---|---|
Standard Colors | ||||||||
0 | 52 | 51 | 50 | 48 | 10 | 54 | 55 | |
8 | 45 | 11 | 9 | 13 | 4 | 46 | 15 | |
2 | 44 | 42 | 49 | 41 | 40 | 12 | 47 | |
6 | 43 | 5 | 3 | 7 | 32 | 53 | 14 | |
37 | 39 | 35 | 34 | 33 | 36 | 38 | 1 | |
Chart Fills | ||||||||
16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | |
Chart Lines | ||||||||
24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 |
Note: When accessing the palette through VBA, the color indexes are 1-based, not 0-based as they are when using ExcelWriter. Therefore, when using VBA, simply add 1 to the indexes listed above.
Excel version of this information
An Excel file containing similar information about default palette colors is attached to this article. You may find it useful for testing different effects on the palette when changing colors using ExcelWriter.