我有一个基于 Web 的应用程序的客户端,他大量使用我们系统中的数据进行 PowerPoint 演示。
我们目前允许以更传统的文件类型导出数据...PDF、CSV、HTML 和其他一些文件类型。Powerpoint 似乎并不是真正自动化的。
有没有办法在 ASP.NET 服务器端自动创建和按需下载系统报告的 powerpoint 文件格式?
我有一个基于 Web 的应用程序的客户端,他大量使用我们系统中的数据进行 PowerPoint 演示。
我们目前允许以更传统的文件类型导出数据...PDF、CSV、HTML 和其他一些文件类型。Powerpoint 似乎并不是真正自动化的。
有没有办法在 ASP.NET 服务器端自动创建和按需下载系统报告的 powerpoint 文件格式?
MSDN 上有一些关于他们使用的 OpenXML 格式的文档:
在本文中,Steve 建议使用 Aspose 的 Slide 应用程序。
他还逐步解释了如何生成 PowerPoint 文件。
以下是一些代码摘录(在 VB 中):
打开现有的 PowerPoint 文件:
Dim fs As System.IO.FileStream = _
New System.IO.FileStream("c:\mypath\myfile.ppt", _
System.IO.FileMode.Open, System.IO.FileAccess.Read)
Dim MyPres As Presentation = New Presentation(fs)
fs.Close()
循环幻灯片并输出其模板格式:
Dim slides As Slides = MyPres.Slides
For i As Integer = 0 To slides.Count - 1
Response.Write(MyPres.Slides(i).Layout.ToString + "<br>")
Next
在他的文章中,他更详细地描述了如何做到这一点。
好吧,您有两种方法可以真正做到这一点,而无需第三方工具。第一个是 PowerPoint 自动化,但这需要您的服务器安装 PowerPoint。二是利用新的pptx文件文件格式,使用XML生成PowerPoint文档。
我发现开始使用 XML 方面的最佳方法是简单地创建一个你想要的 powerpoint,然后保存它并查看 XML。您还可以查看 microsoft 文档。总体而言,使用 XML 格式非常容易。
最后,可能会有一些第三方项目,但请注意它们不需要 COM 自动化。
关于上一张海报,你的说法是不正确的。
对于此过程的服务器端 ASP.NET 自动化,您实际上只有一个选项。使用 Ben 在原始答案中提到的开放 xml 链接...
使用 Open XML 格式 API 处理 Excel 2007 和 PowerPoint 2007 文件(第 1 部分,共 2 部分) 使用 Open XML 格式 API 处理 Excel 2007 和 PowerPoint 2007 文件(第 2 部分,共 2 部分)
原因是办公室的服务器端自动化完全不受支持,并且是糟糕的编码实践,运行为在非交互式环境中交互式使用而设计的 com 自动化服务器可能会导致灾难。
所以总而言之,使用 open xml api 并生成您的 pptx。
还有其他类似于 Aspose Slides 的第三方选项,例如 OfficeWriter 的PowerPoint Writer。
我不确定 Aspose Slides 是如何工作的,但是使用 PowerPoint Writer,您有一个现有的、格式化的 PowerPoint 演示文稿,其中包含数据标记,您可以使用 PowerPoint Writer 处理它以用数据替换数据标记。下面是一些例子。
还有另一种方法,将您的 power point 演示文稿转换为图像或 xps(银光演示文稿),然后使用某种 json(jquery)来显示和下载它们。
我在我的网络应用程序中实现图像和 xps 银光演示