think-cell API
在 Windows 上,您可以通过 think-cell API 对某些 think-cell 函数进行编程。本附录包含所有可用 API 函数的概述,以及关于设置开发环境的一般说明,以便编写能访问这些函数的宏、加载项或独立程序。
开始使用 think-cell API
think-cell API 已集成到 Microsoft 的组件对象模型 (COM) 中,因此您可以通过能对 Office 编程的任何语言(例如 Visual Basic for Applications (VBA) 或 C#)访问 API。
think-cell 的入口点是 think-cell 加载项对象。可以通过 Application.COMAddIns 集合对其进行访问。调用 think-cell 始终采用后期绑定,因此没有要添加的类型库或引用。有关在自动化中使用初期绑定和后期绑定的说明,请参阅 Microsoft Learn。
一些 API 函数是 think-cell 加载项对象在 PowerPoint 中的方法,另一些 API 函数则是 think-cell 加载项对象在 Excel 中的方法。我们使用 tcPpAddIn 作为对 PowerPoint 加载项的引用,并使用 tcXlAddIn 作为对 Excel 加载项的引用。
Visual Basic for Applications
若要使用 Visual Basic for Applications (VBA) 编写宏,您可以使用集成到 Office 主机应用程序的开发环境。可以按 Alt+F11 进行访问。宏的定义通常包含在一个模块中,您可以通过“Insert”>“Module”进行添加。您可以按 Alt+F8 查看为给定文件定义的所有宏。
若要指出调用 think-cell 加载项的方法为后期绑定,您需要将包含对其引用的变量宣布为 Object:
Dim tcaddin As Object
Set tcaddin = Application.COMAddIns("thinkcell.addin").Object
默认情况下,始终引用 Office 主机应用程序的类型库。如果您需要访问另一个 Office 应用程序的对象模型,您需要将其类型库添加为引用。
例如,如果您使用宏在 PowerPoint 中修改 Excel 表格内的数据,之后再从表格中更新 think-cell 图表,您需要通过 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 主机应用程序的 think-cell 加载项对象,即 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# 的 think-cell API。
我们将在以下部分中假设,您在使用 Visual Studio 2017 或更新版本来在 C# 中开发 Office 解决方案。请参阅下一节,了解关于加载项开发的具体设置说明的更多信息。我们将在每个代码示例中指出要使用哪个 Visual Studio 项目模板。
若要使调用 think-cell 加载项对象的方法为后期绑定,请宣布包含 think-cell 加载项对象的引用为 dynamic;这也是在宣布引用为 var 时编译程序推断的类型,这样您只需编写即可:
var tcPpAddIn = ppapp.COMAddIns.Item("thinkcell.addin").Object;
在这里,ppapp 是加载了 think-cell 的 PowerPoint Application 对象的引用。
若要访问 Office 应用程序的对象模型,您需要将其类型库或其主互操作程序集 (PIA) 添加为您的项目的引用。如有可能,我们建议添加类型库,因为如果有可用的 PIA,Visual Studio 会自动添加对应 PIA 的引用,或如果没有可用 PIA,Visual Studio 会从类型库生成互操作程序集(参阅此处)。
例如,为了能够获得上述 think-cell 加载项对象的引用,您要添加“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 的其他版本。如需更多信息,请参阅此处。
think-cell 的 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 应用程序的对象模型,您需要按照上面的说明将其类型库添加为引用。
注释:think-cell 的 API 无法从 Office Web 加载项使用(遗憾的是,Microsoft 现在简单地将其称为“Office 加载项”),因为它们无法与 Office 应用程序的对象模型直接进行互动,尤其是无法与 think-cell 等 COM 加载项进行互动。
API 引用
在 Windows 上可以使用以下 API:
使用 Excel 数据实现自动化
使用 Excel 中的数据自动更新 PowerPoint 模板中的 think-cell 元素。如需更多信息,请参阅 使用 Excel 数据实现自动化。
|
API |
描述 |
手册主题 |
|---|---|---|
|
|
创建 PowerPoint 模板的副本,并更新复制的演示文稿中链接到 Excel 工作簿的所有 think-cell 元素 |
|
|
|
更新 PowerPoint 模板中的特定 think-cell 元素,无论它们是否链接到 Excel |
|
|
|
使用 Excel 中的数据更新 PowerPoint 模板中的 think-cell 元素。 |
样式文件
加载、查看和移除 think-cell 样式文件。如需更多信息,请参阅 🛇样式文件。
|
API |
描述 |
手册主题 |
|---|---|---|
|
|
在幻灯片母版或幻灯片布局中加载样式文件 |
|
|
|
加载样式文件,使其仅适用于幻灯片布局的特定区域 |
🛇Load a style file in an area of the layout: LoadStyleForRegion |
|
|
返回在幻灯片母版或幻灯片布局中处于活动状态的样式文件的名称 |
|
|
|
从幻灯片布局中移除所有样式文件 |
Mekko Graphics 图表
将 Mekko Graphics 图表导入到 think-cell 并检查这些图表。如需更多信息,请参阅 导入 Mekko 图形图表。
|
API |
描述 |
手册主题 |
|---|---|---|
|
|
将 PowerPoint 中的 Mekko Graphics 图表替换为 think-cell 图表 |
|
|
|
提取 Mekko Graphics 图表的 XML 定义 |