我的任务是使用 C# 在服务器上生成 PowerPoint 文件的功能。我基本上从一个模板开始,并以编程方式用数据库中的实时数据替换一些文本。在过去的一天里,我一直在对这个领域进行一些研究,这就是我发现的:
PowerPoint 内置了这种东西,这意味着它可以连接到外部数据源并提取数据。我发现,这方面的大多数示例要么使用在服务器上完成的 PowerPoint 自动化(有人建议我不要这样做),要么假设使用 SQL Server 后端。我们公司使用 Oracle 来满足我们的 RDMS 需求。Oracle 对此有一个称为 Oracle BI 的解决方案,但它需要一个全新的 Web 服务器设置来运行各种 Java EE 组件等等。我没有看价格,但知道甲骨文并不便宜。它还需要在最终用户的机器上安装新软件,这是我们真正想要避免的。
可以动态生成 PowerPoint 文件。基本上是解决这个问题的公司(每个帮助论坛都指向他们,他们得到了所有好评)是Aspose。它们具有 .NET 组件,可用于处理您能想到的几乎任何 Office 格式。问题是,它们非常昂贵。仅 PowerPoint 组件(最多 10 名开发人员的站点许可)将花费 3,995 美元。
第三种可能性是在内部生成解决方案。毕竟,PPTX 文件只是 xml,对吧?好吧,仔细看,PPTX 似乎是一个 gzip 存档。它包含许多文件夹,每个文件夹都包含许多 XML 文件。如果我错了,修改 PPTX 文件需要将文件解压缩到临时目录,读取 XML 文件并修改内容,然后再次打包所有内容并将文件写入响应流。也许有些库可以在不提取所有内容的情况下即时处理 gzip 流。
我的问题:是否有更简单的方法来使用 .NET 来处理 PPTX 文件,而无需处理压缩的 XML 文件或购买非常昂贵的软件?基本上,我们需要修改PowerPoint 文件,更改一些文本,并允许用户从 Web 服务器下载生成的文件。