thinkcell API
在 Windows 上,您可以通过 thinkcell API 对某些 thinkcell 函数进行编程。本附录包含所有可用 API 函数的概述,以及关于设置开发环境的一般说明,以便编写能访问这些函数的宏、加载项或独立程序。
开始使用 thinkcell API
thinkcell API 已集成到 Microsoft 的组件对象模型 (COM) 中,因此您可以通过能对 Office 编程的任何语言(例如 Visual Basic for Applications (VBA) 或 C#)访问 API。
thinkcell 的入口点是 thinkcell 加载项对象。可以通过 Application.COMAddIns 集合对其进行访问。调用 thinkcell 始终采用后期绑定,因此没有要添加的类型库或引用。有关在自动化中使用初期绑定和后期绑定的说明,请参阅 Microsoft Learn。
一些 API 函数是 thinkcell 加载项对象在 PowerPoint 中的方法,另一些 API 函数则是 thinkcell 加载项对象在 Excel 中的方法。我们使用 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 的引用,或如果没有可用 PIA,Visual Studio 会从类型库生成互操作程序集(参阅此处)。
例如,为了能够获得上述 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 图形图表。
|
API |
描述 |
手册主题 |
|---|---|---|
|
|
将 PowerPoint 中的 Mekko Graphics 图表替换为 thinkcell 图表 |
|
|
|
提取 Mekko Graphics 图表的 XML 定义 |
需要排查问题
查看我们的知识库