Previous topicNext topic
Help > 开发指南 > Excel > API > 示例 > 设置单元格格式 >
如何:应用或修改工作簿主题

文档主题是一组字体、颜色和图形效果,可用于更改文档的整体外观。每个工作簿都有一个由 Workbook.Theme 属性返回的关联主题。新文档应用了默认的 Office 2007 - 2010 主题。您可以为文档使用自定义主题或更改预定义的主题颜色。

加载和应用自定义主题

在 Microsoft® Excel® 中,可以将文档主题另存为 .thmx 文件,以便在其他文档中重复使用此主题。有关详细信息,请参阅以下主题: 保存自定义主题以供重复使用 。WorkbookTheme.Load 方法允许您加载具有自定义主题的文件并将其应用于工作簿。

以下代码片段将 Quotable 主题应用于文档:

Vb.Net
Using workbook As New DevExpress.Spreadsheet.Workbook()
    Dim docTheme As DevExpress.Spreadsheet.WorkbookTheme = workbook.Theme
    docTheme.Load("D:\Quotable.thmx")
End Using

C#
using (DevExpress.Spreadsheet.Workbook workbook = new DevExpress.Spreadsheet.Workbook())
{
    DevExpress.Spreadsheet.WorkbookTheme docTheme = workbook.Theme;
    docTheme.Load(@"D:\Quotable.thmx");
}

自定义主题颜色

调用 WorkbookTheme.GetColors 方法以返回一个 ThemeColorScheme 对象,该对象定义 12 种互补主题颜色的调色板。对象的属性允许您自定义主题颜色。调用 WorkbookTheme.SetColors 方法以将新颜色应用于主题。

下面的示例演示如何使用 Slipstream 调色板的颜色而不是 Office 2013 主题颜色:

Vb.Net
Using workbook As New DevExpress.Spreadsheet.Workbook()
    Dim docTheme As DevExpress.Spreadsheet.WorkbookTheme = workbook.Theme
    Dim themeColors As DevExpress.Spreadsheet.ThemeColorScheme = docTheme.GetColors()
    themeColors.Name = "Slipstream"
    themeColors.Dark1 = Color.FromKnownColor(KnownColor.WindowText)
    themeColors.Light1 = Color.FromKnownColor(KnownColor.Window)
    themeColors.Dark2 = Color.FromArgb(&H21, &H27, &H45)
    themeColors.Light2 = Color.FromArgb(&HB4, &HDC, &HFA)
    themeColors.Accent1 = Color.FromArgb(&H4E, &H67, &HC8)
    themeColors.Accent2 = Color.FromArgb(&H5E, &HCC, &HF3)
    themeColors.Accent3 = Color.FromArgb(&HA7, &HEA, &H52)
    themeColors.Accent4 = Color.FromArgb(&H5D, &HCE, &HAF)
    themeColors.Accent5 = Color.FromArgb(&HFF, &H80, &H21)
    themeColors.Accent6 = Color.FromArgb(&HF1, &H41, &H24)
    themeColors.Hyperlink = Color.FromArgb(&H56, &HC7, &HAA)
    themeColors.FollowedHyperlink = Color.FromArgb(&H59, &HA8, &HD1)
    docTheme.SetColors(themeColors)
End Using

C#
using (DevExpress.Spreadsheet.Workbook workbook = new DevExpress.Spreadsheet.Workbook())
{
    DevExpress.Spreadsheet.WorkbookTheme docTheme = workbook.Theme;
    DevExpress.Spreadsheet.ThemeColorScheme themeColors = docTheme.GetColors();
    themeColors.Name = "Slipstream";
    themeColors.Dark1 = Color.FromKnownColor(KnownColor.WindowText);
    themeColors.Light1 = Color.FromKnownColor(KnownColor.Window);
    themeColors.Dark2 = Color.FromArgb(0x21, 0x27, 0x45);
    themeColors.Light2 = Color.FromArgb(0xB4, 0xD, 0xFA);
    themeColors.Accent1 = Color.FromArgb(0x4E, 0x67, 0xC8);
    themeColors.Accent2 = Color.FromArgb(0x5E, 0xC, 0xF3);
    themeColors.Accent3 = Color.FromArgb(0xA7, 0xEA, 0x52);
    themeColors.Accent4 = Color.FromArgb(0x5D, 0xCE, 0xAF);
    themeColors.Accent5 = Color.FromArgb(0xFF, 0x80, 0x21);
    themeColors.Accent6 = Color.FromArgb(0xF1, 0x41, 0x24);
    themeColors.Hyperlink = Color.FromArgb(0x56, 0xC7, 0xAA);
    themeColors.FollowedHyperlink = Color.FromArgb(0x59, 0xA8, 0xD1);
    docTheme.SetColors(themeColors);
}

重置主题

调用 Reset 方法以使用预定义的 Office 主题之一,而不是自定义主题。

Vb.Net
Using workbook As New DevExpress.Spreadsheet.Workbook()
    Dim docTheme As DevExpress.Spreadsheet.WorkbookTheme = workbook.Theme
    '将文档主题更改为默认的Office 2013主题。
    docTheme.Reset(DevExpress.Spreadsheet.ThemePreset.Office2013)
End Using

C#
using (DevExpress.Spreadsheet.Workbook workbook = new DevExpress.Spreadsheet.Workbook())
{
    DevExpress.Spreadsheet.WorkbookTheme docTheme = workbook.Theme;
    // 将文档主题更改为默认的Office 2013主题。
    docTheme.Reset(DevExpress.Spreadsheet.ThemePreset.Office2013);
}