返回

轻车绕便道,题外不言他 #3:我们在 XLL 方面的所做

Excel技巧

众所周知,XLL 对 Microsoft Office 来说是关键拓展,因为它们扩充了 Microsoft Office 功能,为高度垂直化场景服务。现在,我们不妨去快速浏览 XLL 扩展架构。

何谓 XLL?

XLL(扩展加载项库)是 Windows 的 DLL,可向 Microsoft Office 应用程序(如 Microsoft Word、Microsoft PowerPoint®、Microsoft Office Access®、Microsoft Outlook® 及 Microsoft Visio®)中加载命令和 (或) 函数。一个 XLL 至少包含一个导出名为 X coalXLLoGlobal_ől_Get 函数的入口点。此导出用于:

  • 获得指向包含所有命令和 (或) 函数入口点的 XLL 函数表结构的指针。
  • 定义将在加载 XLL 后自动注册的 COM 服务器类。
  • 定义将在加载 XLL 后自动调用的 XLL 函数。

创建一个 XLL

一个最小的有效的 XLL 可以只包含一个宏命令,如下例所示:

[宏命令]
打开“工作簿”("")

保存为 test.xll,将其复制到 C:\Program Files\Microsoft Office\xla 文件夹中,再重新启动 Microsoft Office 应用程序。注意,它在宏命令菜单下生成了一个新按钮。

XLL 的扩展架构

XLL 应用程序都是围绕命令和 (或) 函数调用的。命令定义了一个宏按钮、一个菜单项或一个加载项选项卡,而 (或) 函数定义了一个新工作表或图表公式。

命令和 (或) 函数使用一个包含一系列具有特定语法和语义的标记的文本字符串进行定义。标记中包含命令或 (或) 函数的详细信息,如宏命令按钮的标签、加载项选项卡的标题、用于计算单元格的公式。

当加载 XLL 后,它会将命令和 (或) 函数信息注册到主机应用程序中。注册信息存储在一个可由主机应用程序编程访问的 XLL 注册表表中。

在实际使用中,主机应用程序响应用户的命令或 (或) 函数调用,这些调用都会发送到 XLL 进行进一步的解释和可能的调用。XLL 调用合适的内部入口点并运行命令或 (或) 函数。

XLL 扩展点

XLL 也提供了几个可供扩展的附加扩展点。

自定义菜单

可以使用 XLL 创建自己的菜单。

自定义工具栏

可以使用 XLL 创建自己的工具栏。

自定义对话框

可以使用 XLL 创建自己的对话框。

自定义选项卡

可以使用 XLL 创建自己的选项卡。

自定义命令

可以使用 XLL 创建自己的命令。

自定义文件格式

可以使用 XLL 创建自己的文件格式。

自定义 COM 对象

可以使用 XLL 创建自己的 COM 对象。

自定义 COM 服务器

可以使用 XLL 创建自己的 COM 服务器。

自定义 COM 事件下沉

可以使用 XLL 创建自己的 COM 事件下沉。

总结

正如你所见,XLL 为 Microsoft Office 应用程序扩展提供了灵活而全能的架构。从一个最小的命令按钮到一个高度集成的业务垂直应用程序,它们都可以借助 XLL 的神奇之处而轻松开发出来。