将用户界面解决方案面向 2007 版本和 2010 版本的 Microsoft Office

**摘要:**Microsoft Office 2010 基于 2007 版本的 Microsoft Office 中已引入的功能进行了扩展。了解如何创建面向 Microsoft Office 的一个版本或两个版本的解决方案。(3 页)

上次修改时间: 2015年3月9日

Microsoft 图标 Mirko Mandic,Microsoft Corporation

2009 年 11 月

适用范围: Excel 2010 | Office 2007 | Office 2010 | Open XML | PowerPoint 2010 | SharePoint Server 2010 | VBA | Word 2010

内容

  • 为 2007 Office System 和 Microsoft Office 2010 编写解决方案

  • 创建基于文档的解决方案

  • 创建 COM 加载项解决方案

  • 结论

为 2007 Office System 和 Microsoft Office 2010 编写解决方案

通过使用新功能扩展 2007 版本中已引入的平台并引入对自定义新 Backstage 视图的支持,Microsoft Office 2010 对 Microsoft Office Fluent 用户界面 (UI) 扩展性模型进行了改进。

本文介绍如何创建与 2007 版本的 Microsoft Office 和/或 Microsoft Office 2010 兼容的 UI 扩展性解决方案。

针对开发人员的 Office 2010 Backstage 视图介绍一文中详细描述了新的 UI 扩展性功能。

创建基于文档的解决方案

与在 2007 版本中一样,可以为特定文档自定义 Office 2010 中的 UI。在 2007 版本中,通过将带自定义 UI 定义的 XML 文件添加到 Office Open XML 格式文件来实现此目的。

表 1。2007 版本和 2010 版本的 Office 使用自定义 UI XML 文件的方式

XML 文件

2007 Office system

Office 2010

用于 2007 Office system 的 XML 文件

使用 XML 文件

使用 XML 文件

用于 Office 2010 的 XML 文件

忽略 XML 文件

使用 XML 文件

适用于 2007 Office system 和 Office 2010 的 XML 文件

使用针对 2007 版本的 XML 文件,并忽略 Office 2010 XML 文件

使用 Office 2010 XML 文件,并忽略针对 2007 版本的 XML 文件

在文档级别,用于自定义 Office Fluent UI 的过程涉及下列步骤:

  1. 将启用宏的文件名中的扩展名(.docm, .xlsm 等)替换为扩展名 .zip。

  2. 打开 Zip 包,并向此包添加用于定义自定义 UI 的 XML 文件。

    确保标记使用适用于目标版本的 Office 的标记,并确保它使用先前定义的正确的命名空间。

  3. 修改包关系部分 (.rels) 以链接正确的 XML 文件,并确保关系类型与目标版本的 Microsoft Office 相对应。例如,如果您创建面向 Office 2010 的解决方案,并将 customUI2010.xml 文件添加到 customUI 文件夹(在 Zip 包内),则新近添加的关系线应与下面的示例类似。

    <Relationship Id="rId4" Type="https://schemas.microsoft.com/office/2007/relationships/ui/extensibility" Target="/customUI/customUI2010.xml" />
    

    由于关系 Id 在 .rels 文件中是唯一的,因此它可以具有任何值。

  4. 关闭 Zip 包,并将扩展名 .zip 替换为启用宏的文件的适当扩展名。

  5. 打开文档,并确保显示 XML 文件中的自定义。

备注

虽然了解 Office Open XML 格式结构的内部情况很有用,但您也许能够绕过这些步骤。您可以利用自定义 UI 编辑器工具(该链接可能指向英文页面)。利用此工具,您可以打开一个文档,插入自定义 UI(包含面向 2007 版本或 2010 版本的 Microsoft Office 的文件),然后将该文档与 XML 标记一起保存在适当的位置。另外,此工具使您能够添加自定义图标,并使这些图标易于引用。

创建 COM 加载项解决方案

在典型的方案中,COM 加载项包含的代码可将定义自定义 UI 的 XML 返回到 Microsoft Office。此 XML 可包含在外部文件中(在简单情况下,可包含在代码本身中)。在应用程序运行时,代码将 XML 标记返回到 Office。在可选步骤中,您可以针对 XSD 架构文件验证此 XML。然后,将此 XML 加载到内存中,并将其应用于 Office Fluent UI。

  • 如果您的加载项面向单个版本的 Microsoft Office(不管是 2007 版本还是 2010 版本),则代码返回的标记应包含适当的命名空间(前面已定义),并且它应对目标版本有效。

  • 如果您的加载项同时面向 2007 版本和 2010 版本的 Microsoft Office,则代码应检测正在运行的版本,并根据检查结果返回适当的标记。这就需要编写两个标记文件,且二者可由代码访问。您可以依赖应用程序的对象模型 (Application.Version) 来检查正在运行的 Microsoft Office 版本。

    或者,您可以使用反射来达到此目的。下面是使用 Microsoft Visual C# 的示例。

    string version = applicationObject.GetType().InvokeMember(
       "Version", BindingFlags.GetProperty,
        System.Type.DefaultBinder,
        applicationObject,
       new Object[0]) as string;
    

结论

如何面向每个版本的 Microsoft Office 取决于您创建的是文档特定的解决方案还是基于 COM 的解决方案。在创建基于文档的解决方案时,您需要确保 Microsoft Office 查找并加载一个 XML 文件,此 XML 文件定义适用于目标版本的 Microsoft Office 的自定义 UI 的结构。在创建基于 COM 的解决方案时,您需要确保您的代码返回一个 XML,此 XML 定义适用于目标版本的 Microsoft Office 的自定义 UI 的结构。

其他资源

有关 Office 2010 扩展性的详细信息,请参阅下列资源: