65.9K
CodeProject 正在变化。 阅读更多。
Home

使用模板创建 PowerPoint 演示文稿

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.35/5 (6投票s)

2006年11月10日

2分钟阅读

viewsIcon

95507

downloadIcon

5934

使用 Office 2007 OpenXML 格式,使用模板创建 PowerPoint 演示文稿。

Sample Image

引言

在本文中,我尝试解释 PowerPoint 2007 文件格式及其结构,通过展示如何使用模板创建演示文稿来实现。这是一个非常有用的示例,可用于各种目的。在这个示例中,我根据用户输入的文本和图像创建幻灯片。代码中的 presentation 类设计方式使得任何人都可以通过从任何来源提供输入来自动化演示文稿的生成过程。

背景

Office 2007 引入了一种新的文件格式,称为 OpenXML。所有数据/设置/元数据都存储在 XML 文件中。首先,快速创建一个 Word/Excel/PowerPoint 文件并保存它。现在,关闭应用程序,并将文件重命名为 .zip 扩展名并打开该文件。 您会看到所有 .xml 文件都打包在其中。 Microsoft 发布了 .NET Framework 3.0 的 9 月 CTP。它有一个名为 Windowbase.dll 的程序集,其中包含 System.IO.Packaging 命名空间,该命名空间支持 Open Office 2007 包文件以执行诸如添加/删除部分和媒体之类的操作。 您可以从 此处 下载它。我使用这个命名空间来处理这个示例。有关 Office 2007 OpenXML 文件格式的更多信息,请阅读 这篇文章。您可以从在线 MSDN 获取其他资源。

使用代码

在代码中,我编写了一个名为 presentation 的类,您可以在 Presentation.cs 中找到它。该类使用 System.IO.Packaging 命名空间。我有一个 template1.pptx 文件,您可以在 debug\bin\Template\ 文件夹中找到它。我将文件放在那里只是为了方便工作。该程序在用户输入的位置创建文件的副本(程序在单击主表单上的“创建演示文稿”按钮时会询问位置)。然后,对于每个幻灯片,它都会创建 slide1.xml 的副本,并按顺序为其命名,例如 slide2.xml 等。然后,该程序找到存储文本的节点,并将其替换为用户键入的文本,然后将图像添加到包中,并与最近创建的 slide(n).xml 建立关系。它在 presentation.xml 中创建已创建幻灯片的条目,并与 slidelayout(n).xml 建立关系。最后,我们保存包。package 类有一个 Save 方法来压缩文件,就这样完成了。

//open the package
package = Package.Open(filename, 
                       FileMode.Open, 
                       FileAccess.ReadWrite);

关注点

这可能是您学习 PowerPoint 文件格式的第一个示例。如果您非常了解文件格式,可以更改此示例以满足您的需求。

© . All rights reserved.