thinkcell API
在 Windows 上,您可以通过 thinkcell API 对部分 thinkcell 功能进行编程。本附录概述所有可用的 API 函数,并提供有关设置开发环境的一般说明,帮助您编写可访问这些函数的宏、加载项或独立程序。
开始使用 thinkcell API
thinkcell API 集成到 Microsoft 的组件对象模型 (COM) 中,因此您可以使用任何能够为 Office 编程的语言访问该 API,例如 Visual Basic for Applications (VBA) 或 C#。
thinkcell 的入口点是 thinkcell 加载项对象。可通过 Application.COMAddIns 集合访问它。对 thinkcell 的调用始终采用后期绑定,因此无需添加类型库或引用。有关 Automation 中早期绑定和后期绑定的说明,请参阅 Microsoft Learn。
某些 API 函数是 PowerPoint 中 thinkcell 加载项对象的方法,另一些 API 函数是 Excel 中 thinkcell 加载项对象的方法。我们使用 tcPpAddIn 表示对 PowerPoint 加载项的引用,使用 tcXlAddIn 表示对 Excel 加载项的引用。
Visual Basic for Applications
要使用 Visual Basic for Applications (VBA) 编写宏,请使用集成到 Office 宿主应用程序中的开发环境。按 Alt+F11 即可访问。宏的定义通常包含在模块中,您可以通过 Insert > Module 添加模块。按 Alt+F8 可查看为指定文档定义的所有宏。
要表明对 thinkcell 加载项的方法调用采用后期绑定,需要将包含其引用的变量声明为 Object:
Dim tcaddin As Object
Set tcaddin = Application.COMAddIns("thinkcell.addin").Object
默认情况下,Office 宿主应用程序的类型库始终会被引用。如果需要访问其他 Office 应用程序的对象模型,则需要将其类型库添加为引用。
例如,如果您想在 PowerPoint 中使用宏,在从 Excel 工作表更新 thinkcell 图表之前先操作其中的数据,则需要在 VBA 开发环境中通过 Tools > References 对话框手动添加 Microsoft Excel 16.0 Object Library。
注意:16.0 是 Office 2016 及更高版本的版本号。对于 Office 2013,需要使用 15.0 对象库。如果您安装了多个 Office 版本,References 对话框只会显示已安装的最新版本的对象库。以下内容假定您使用的是 Office 2016 或更高版本。
使用 Application.COMAddIns("thinkcell.addin").Object 始终会获取当前 Office 宿主应用程序的 thinkcell 加载项对象,即 tcPpAddIn 或 tcXlAddIn,具体取决于您是在 PowerPoint 还是 Excel 中使用它。要获取另一个 Office 应用程序中的加载项对象引用,并访问其公开的 API 函数,请通过相应的应用程序实例获取。
例如,要从 PowerPoint 获取对 tcXlAddIn 的引用:
Dim xlapp As Object
Set xlapp = New Excel.Application
Dim tcXlAddIn As Object
Set tcXlAddIn = xlapp.COMAddIns("thinkcell.addin").Object
请注意,这需要将 Excel 对象库添加为引用。
建议使用 Option Explicit 语句,它会强制显式声明所有变量,从而帮助避免常见编程错误,并改进 IntelliSense 提供的建议。您可以通过启用 Tools > Options > Code Settings > Require Variable Declaration,让它自动添加到所有模块中。我们的所有代码示例中都包含该语句。
C#
在开发在 Office 宿主应用程序内运行的加载项和文档代码扩展,以及开发独立应用程序时,您都可以通过 C# 使用 thinkcell API。
以下内容假定您使用 Visual Studio 2017 或更高版本通过 C# 开发 Office 解决方案。有关加载项开发的更具体设置说明,请参阅下一节。对于我们的每个代码示例,我们都会注明应使用哪个 Visual Studio 项目模板。
要对 thinkcell 加载项对象进行后期绑定方法调用,请将包含 thinkcell 加载项对象引用的变量声明为 dynamic;当将引用声明为 var 时,这也是编译器推断出的类型,因此您可以直接这样编写:
var tcPpAddIn = ppapp.COMAddIns.Item("thinkcell.addin").Object;
此处 ppapp 是对已加载 thinkcell 的 PowerPoint Application 对象的引用。
要访问 Office 应用程序的对象模型,需要将其类型库或主互操作程序集 (PIA) 添加为项目引用。我们建议尽可能添加类型库,因为如果有相应的 PIA,Visual Studio 会自动添加对该 PIA 的引用;如果没有,则会从类型库生成互操作程序集(请参阅此处)。
例如,要能够按上述方式获取 thinkcell 加载项对象的引用,您需要添加 Reference Manager 对话框中 COM > Type Libraries 选项卡下的 Microsoft PowerPoint 16.0 Object Library。根据您的项目类型,可通过在 Solution Explorer 中右键单击 References 或 Dependencies,然后选择 Add (COM) Reference 来访问此对话框。
注意:16.0 是 Office 2016 及更高版本的版本号。通过使用 Embed Interop Types 选项(对于 COM 类型库的引用,该选项默认启用),只要所使用的所有接口都存在于其他 Office 版本的对象模型中,使用此引用编译的应用程序就能向后(和向前)兼容这些版本。更多信息请参阅此处。
thinkcell 的 API 函数使用 COM HRESULT 指示错误。其中一些会自动映射到相应的 .NET 异常类,请参阅 如何:映射 HRESULT 和异常。
加载项开发
要为 Office 开发加载项或为 Office 文档开发代码扩展,请使用 PowerPoint/Excel VSTO Add-in 和 Excel VSTO Template/Workbook 项目模板。这些模板属于 Office Developer Tools for Visual Studio,会作为默认配置的一部分安装。如果您的 Visual Studio 安装中没有这些工具和模板,可以添加它们,例如前往 Settings⚙ > Apps > Visual Studio 2022 > Modify > Other Toolsets,勾选 Office/SharePoint development 并单击 Modify。另请参阅 Microsoft 文档此处和此处。
默认情况下,所选模板的 Office 宿主应用程序的 PIA 始终会加载。如果需要访问其他 Office 应用程序的对象模型,需要按上述说明将其类型库添加为引用。
注意:thinkcell 的 API 无法用于 Office Web 加载项——Microsoft 现在遗憾地将其简称为“Office 加载项”——因为它们无法直接与 Office 应用程序的对象模型交互,尤其无法与 thinkcell 等 COM 加载项交互。
API 参考
在 Windows 上,你可以使用以下 API:
使用 Excel 数据实现自动化
使用 Excel 中的数据自动更新 PowerPoint 模板中的 thinkcell 元素。要了解更多信息,请参阅 使用 Excel 数据实现自动化。
|
API |
说明 |
手册主题 |
|---|---|---|
|
|
创建 PowerPoint 模板的副本,并更新复制后的演示文稿中所有链接到 Excel 工作簿的 thinkcell 元素 |
|
|
|
更新 PowerPoint 模板中的指定 thinkcell 元素,无论它们是否链接到 Excel |
|
|
|
使用 Excel 中的数据更新 PowerPoint 模板中的 thinkcell 元素。 |
样式文件
加载、查看和移除 thinkcell 样式文件。要了解更多信息,请参阅 样式文件。
|
API |
说明 |
手册主题 |
|---|---|---|
|
|
在幻灯片母版或幻灯片版式中加载样式文件 |
|
|
|
加载样式文件,使其仅应用于幻灯片版式中的特定区域 |
|
|
|
返回幻灯片母版或幻灯片版式中当前启用的样式文件名称 |
|
|
|
从幻灯片版式中移除所有样式文件 |
Mekko Graphics 图表
将 Mekko Graphics 图表导入 thinkcell 并进行检查。要了解更多信息,请参阅 导入 Mekko Graphics 图表。
|
API |
说明 |
手册主题 |
|---|---|---|
|
|
将 PowerPoint 中的 Mekko Graphics 图表替换为 thinkcell 图表 |
|
|
|
提取 Mekko Graphics 图表的 XML 定义 |
需要排查问题吗?
查看我们的知识库