在 Excel 中提供数据后,您可以使用 UpdateChart
和 PresentationFromTemplate
函数通过编程对该数据的使用进行控制。
通过 UpdateChart
,您可以对特定元素的数据表和您的 Excel 数据进行交换。通过 PresentationFromTemplate
,您可以根据 PowerPoint 模板,使用数据创建新的演示文稿(将 think-cell 元素链接到 21. Excel 数据链接 中描述的 Excel 中的数据范围)。
这两个函数的接口都已集成到 Office Automation 模型中,因此可以通过能对 Office 编程的任何语言(例如 Visual Basic for Applications (VBA) 或 C#)进行访问。请查阅 入门 了解详细说明。
think-cell 的入口点是 think-cell 加载项对象。可以通过 Application.COMAddIns
集合对其进行访问。调用 think-cell 始终采用后期绑定。如需说明,请参阅 Microsoft 的知识库:
在自动化中使用初期绑定和后期绑定
因此,think-cell 加载项对象的类型只是 Object
,没有要添加的类型库或引用。只需获取对象,即可进行调用。例如,在 Excel 内的 VBA 中:
在 C# 中,您可以通过宣布 think-cell 加载项对象的引用为 dynamic
,从而实现后期绑定;这也是在宣布引用为 var
时编译程序推断的类型,这样您只需编写即可:
在这里,xlapp
是加载了 think-cell 的 Excel.Application
对象的引用。
- 25.1
- UpdateChart
- 25.2
- PresentationFromTemplate
25.1 UpdateChart
25.1.1 签名
VBA
C#
25.1.2 描述
此函数会使用 rgData
中包含的数据,更新 target
中所有名称为 strName
的元素。为了正确地解读图表中的数据,范围 rgData
必须符合其默认数据表布局,或其转置版本,另请参阅 从 Excel 创建图表 和 适合数据布局。通过将 bTransposed
设置成 false
或 true
,以分别表示使用默认或转置版本。对于图表之外的元素,例如表格,会忽略 bTransposed
值。
target
必须为 Presentation
或 SlideRange
,或单一的 Slide
、Master
或 CustomLayout
。
名称 strName
的匹配不区分大小写。先前必须已经按照中所述在 PowerPoint 中使用 UpdateChart 名称24. 自动化简介属性控件分配该名称。
为了确保针对了正确的元素,请确保在作为 pres
传递的对象中将它们的 UpdateChart 名称设置为 strName
。
若已将目标元素链接到 Excel 数据范围,则调用此函数时,链接将中断。此后,不会将元素链接到任何 Excel 范围。
25.1.3 示例
若要使用这些示例,请根据 24. 自动化简介 中的描述准备演示文稿,并将其保存为 C:\Samples\UpdateChart\template.pptx
。
VBA
若要使用此示例,请将其添加到 Excel 工作簿中的模块。
它需要引用 Microsoft PowerPoint 16.0 对象库(请参阅 Visual Basic for Applications 了解详细信息)。
在工作簿中运行 UpdateChart_Sample
后,将会以其第一张图表的范围 A1:D5
中包含的数据更新演示文稿模板内的图表。
C#
若要使用此模板,请用它更换 C# 控制台应用程序项目模板的 Program.cs
中的代码。
它需要引用 Microsoft PowerPoint 16.0 对象库、Microsoft Excel 16.0 对象库和 Microsoft Office 16.0 对象库(请参阅 C# 了解详细信息)。
运行生成的应用程序后,将会更新演示文稿模板中的图表,使其包含带有值 1、2 和 3,名为“系列 1”的单一系列,并将结果保存为 template_updated.pptx
。
25.2 PresentationFromTemplate
25.2.1 签名
VBA
C#
25.2.2 描述
此函数使用 Excel 工作簿 wb
和文件名为 strTemplate
的模板之间的数据链接,通过使用与它们相链接的范围内的数据来更新链接的元素,从而将该模板实例化。结果是,在 PowerPoint 实例 ppapp
中产生新的演示文稿。
strTemplate
可以是完整路径,也可以是相对路径(随后会将其作为相对于 Excel 工作簿文件 所在位置的相对路径)wb
。
将更新 strTemplate
中已链接到 Excel 工作簿 wb
的所有元素(不论是否已将其设为自动更新,都是如此)。在生成的演示文稿中,它们的数据链接会被中断,以防止对这些元素进行进一步更改。
strTemplate
中已链接到除 wb
外其他 Excel 工作簿的元素将保持不变,并且仍保持链接状态,因此可以将此函数的结果另存为新模板,然后使用下一个工作簿再次调用此函数,以便更新多个 Excel 工作簿中的链接。
若您希望使用 Excel 链接控制图表段的颜色或表格单元格的格式,可以分别将配色方案设为在顶部使用数据表填充(请参阅 配色方案)或使用数据表…选项(请参阅 设置表格的格式)。同样,若要使用 Excel 链接控制数字格式,请将其设为使用 Excel 格式(请参阅数字格式)。
请确保先设置 Excel 中各单元格的相关格式选项和数字格式,然后再调用 PresentationFromTemplate
。
25.2.3 示例
若要使用这些示例,先按照 从 Excel 创建图表 中的说明,创建一个演示文稿,里面包含一个堆积图,该图链接到 Excel 工作簿的第一个表格的范围 G1:K4
。在同一个目录中将生成的演示文稿保存为 C:\Samples\PresentationFromTemplate\template.pptx
,将工作簿保存为 data.xlsx
。
VBA
若要使用此示例,将其添加到按照上面说明准备的 Excel 工作簿 data.xlsx
中的模块。
它需要引用 Microsoft PowerPoint 16.0 对象库(请参阅 Visual Basic for Applications 了解详细信息)。
运行 PresentationFromTemplate_Sample
将会更改单元格 Sheet1!H3
中的值(该值链接到 template.pptx
中包含的图表的第一系列的第一个值,从 i=1
到 10
),使用更新后包含该值的模板中的图表创建新的演示文稿(该值不再链接到工作簿),并在与模板相同的目录中将其保存为 output_i.pptx
。
C#
若要使用此模板,请用它更换 C# 控制台应用程序项目模板的 Program.cs
中的代码。
它需要引用 Microsoft PowerPoint 16.0 对象库、Microsoft Excel 16.0 对象库和 Microsoft Office 16.0 对象库(请参阅 C# 了解详细信息)。
运行生成的应用程序显然将会打开 Excel,加载工作簿 data.xlsx
,更改单元格 H3
中的值(该值链接到 template.pptx
中包含的图表的第一系列的第一个值,从 i=1
到 10
),使用更新后包含该值的模板中的图表创建新的演示文稿(该值不再链接到工作簿),并在与模板相同的目录中将其保存为 output_i.pptx
。