Excel Themes and Colors
Excel Themes and Colors
Themes provide a unified look with named styles, graphical effects and other objects used in a workbook. For example, the Accent1 style, for example, looks different in the Office and the Apex themes. Often, you apply a document theme and then amend it to how you want it.
Aspose.Cells provides features for customizing themes and colors.
Get and Set Theme Colors
Below are a few methods and properties that implement theme colors.
- Style.ForegroundThemeColor: Used to set the foreground color.
- Style.BackgroundThemeColor: Used to set the background color.
- Font.ThemeColor: Used to set the font color.
- Workbook.GetThemeColor: Used to get a theme color.
- Workbook.SetThemeColor: Used to set a theme color.
The following example shows how to get and set theme colors.
The following example uses a template XLSX file, gets the colors for different theme color types, changes the colors and saves the Microsoft Excel file.
// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-.NET | |
// The path to the documents directory. | |
string dataDir = RunExamples.GetDataDir(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); | |
// Instantiate Workbook object. | |
// Open an exiting excel file. | |
Workbook workbook = new Workbook(dataDir + "book1.xlsx"); | |
// Get the Background1 theme color. | |
Color c = workbook.GetThemeColor(ThemeColorType.Background1); | |
// Print the color. | |
Console.WriteLine("theme color Background1: " + c); | |
// Get the Accent2 theme color. | |
c = workbook.GetThemeColor(ThemeColorType.Accent2); | |
// Print the color. | |
Console.WriteLine("theme color Accent2: " + c); | |
// Change the Background1 theme color. | |
workbook.SetThemeColor(ThemeColorType.Background1, Color.Red); | |
// Get the updated Background1 theme color. | |
c = workbook.GetThemeColor(ThemeColorType.Background1); | |
// Print the updated color for confirmation. | |
Console.WriteLine("theme color Background1 changed to: " + c); | |
// Change the Accent2 theme color. | |
workbook.SetThemeColor(ThemeColorType.Accent2, Color.Blue); | |
// Get the updated Accent2 theme color. | |
c = workbook.GetThemeColor(ThemeColorType.Accent2); | |
// Print the updated color for confirmation. | |
Console.WriteLine("theme color Accent2 changed to: " + c); | |
// Save the updated file. | |
workbook.Save(dataDir + "output.out.xlsx"); |
Customize Themes
The following example shows how to apply custom themes with your desired colors. We use a sample template file manually created in Microsoft Excel 2007.
The following example loads a template XLSX file, defines colors for different theme color types, applies the custom colors and saves the excel file.
// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-.NET | |
// The path to the documents directory. | |
string dataDir = RunExamples.GetDataDir(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); | |
// Define Color array (of 12 colors) for Theme. | |
Color[] carr = new Color[12]; | |
carr[0] = Color.AntiqueWhite; // Background1 | |
carr[1] = Color.Brown; // Text1 | |
carr[2] = Color.AliceBlue; // Background2 | |
carr[3] = Color.Yellow; // Text2 | |
carr[4] = Color.YellowGreen; // Accent1 | |
carr[5] = Color.Red; // Accent2 | |
carr[6] = Color.Pink; // Accent3 | |
carr[7] = Color.Purple; // Accent4 | |
carr[8] = Color.PaleGreen; // Accent5 | |
carr[9] = Color.Orange; // Accent6 | |
carr[10] = Color.Green; // Hyperlink | |
carr[11] = Color.Gray; // Followed Hyperlink | |
// Instantiate a Workbook. | |
// Open the template file. | |
Workbook workbook = new Workbook(dataDir + "book1.xlsx"); | |
// Set the custom theme with specified colors. | |
workbook.CustomTheme("CustomeTheme1", carr); | |
// Save as the excel file. | |
workbook.Save(dataDir + "output.out.xlsx"); |
Use Theme Colors
The following example applies a cell’s foreground and font colors based on the default theme (of the workbook) color types. It also saves the excel file to disk.
// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-.NET | |
// The path to the documents directory. | |
string dataDir = RunExamples.GetDataDir(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); | |
// Create directory if it is not already present. | |
bool IsExists = System.IO.Directory.Exists(dataDir); | |
if (!IsExists) | |
System.IO.Directory.CreateDirectory(dataDir); | |
// Instantiate a Workbook. | |
Workbook workbook = new Workbook(); | |
// Get cells collection in the first (default) worksheet. | |
Cells cells = workbook.Worksheets[0].Cells; | |
// Get the D3 cell. | |
Aspose.Cells.Cell c = cells["D3"]; | |
// Get the style of the cell. | |
Style s = c.GetStyle(); | |
// Set foreground color for the cell from the default theme Accent2 color. | |
s.ForegroundThemeColor = new ThemeColor(ThemeColorType.Accent2, 0.5); | |
// Set the pattern type. | |
s.Pattern = BackgroundType.Solid; | |
// Get the font for the style. | |
Aspose.Cells.Font f = s.Font; | |
// Set the theme color. | |
f.ThemeColor = new ThemeColor(ThemeColorType.Accent4, 0.1); | |
// Apply style. | |
c.SetStyle(s); | |
// Put a value. | |
c.PutValue("Testing1"); | |
// Save the excel file. | |
workbook.Save(dataDir + "output.out.xlsx"); |