Use the Excel Export API to Change Cell Background Color

  • 3 minutes to read

This example demonstrates how to fill a cell background. To do this, use the static methods of the XlFill object.

  • Solid Fill

    To specify the cell background color, call the XlFill.SolidFill method and pass the desired color (defined by the XlColor object) as a parameter. You can use a system-defined color specified by the corresponding property of the Color structure (in this case, the Color object will be converted to the XlColor object using the implicit converter), create a color from the RGB component values (XlColor.FromArgb), or utilize a theme color (XlColor.FromTheme).

  • Pattern Fill

    To specify a pattern style for a cell, use the XlFill.PatternFill method and pass the following parameters.

    • Pattern type - specifies the type of a cell’s background pattern. The available pattern types are defined by the XlPatternType enumeration members.
    • Background color (optional) - specifies the background color of a cell to which the pattern style is applied.
    • Pattern color (optional) - specifies the foreground color of the pattern fill.

If you use the XlFill.PatternFill method overload that specifies only a pattern style, the cell background color will be empty and the pattern color will be set to automatic.

To apply fill settings to a cell, pass the specified XlFill object to the IXlCell.ApplyFormatting method as a parameter, or assign it to the IXlCell.Formatting property.

Tip

To share background settings with multiple cells in a row at once, use the IXlRow.BlankCells and IXlRow.BulkCells methods.

To specify fill settings for the entire row or column, use the IXlRow.ApplyFormatting and IXlColumn.ApplyFormatting methods, or IXlRow.Formatting and IXlColumn.Formatting properties, respectively.

// Create a new worksheet.
using(IXlSheet sheet = document.CreateSheet()) {

    using(IXlRow row = sheet.CreateRow()) {
        using(IXlCell cell = row.CreateCell()) {
            // Fill the cell background using the predefined color.
            cell.ApplyFormatting(XlFill.SolidFill(Color.Beige));
        }
        using(IXlCell cell = row.CreateCell()) {
            // Fill the cell background using the custom RGB color.
            cell.ApplyFormatting(XlFill.SolidFill(Color.FromArgb(0xff, 0x99, 0x66)));
        }
        using(IXlCell cell = row.CreateCell()) {
            // Fill the cell background using the theme color.
            cell.ApplyFormatting(XlFill.SolidFill(XlColor.FromTheme(XlThemeColor.Accent3, 0.4)));
        }
    }

    using(IXlRow row = sheet.CreateRow()) {
        using(IXlCell cell = row.CreateCell()) {
            // Specify the cell background pattern using predefined colors.
            cell.ApplyFormatting(XlFill.PatternFill(XlPatternType.DarkDown, Color.Red, Color.White));
        }
        using(IXlCell cell = row.CreateCell()) {
            // Specify the cell background pattern using custom RGB colors.
            cell.ApplyFormatting(XlFill.PatternFill(XlPatternType.DarkTrellis, Color.FromArgb(0xff, 0xff, 0x66), Color.FromArgb(0x66, 0x99, 0xff)));
        }
        using(IXlCell cell = row.CreateCell()) {
            // Specify the cell background pattern using theme colors.
            cell.ApplyFormatting(XlFill.PatternFill(XlPatternType.LightHorizontal, XlColor.FromTheme(XlThemeColor.Accent1, 0.2), XlColor.FromTheme(XlThemeColor.Light2, 0.0)));
        }
    }
}

The image below illustrates the result (the workbook is opened in Microsoft® Excel®).

XLExport_Examples_CellBackgroundColor

See Also