OpenXml 和 PowerPoint 入门

问题描述 投票:0回答:4

我想开发一个可以处理 PowerPoint 模板并填充格式化数据的类库。主要涉及表格、标签、幻灯片克隆。我想在 .Net 4 中使用 Open Xml 来实现此目的。

我想要一些这方面的建议和参考。还想知道哪种方法更好,是使用 OpenXml SDK 2.0 还是 System.Packaging,因为我在某些地方读到使用 Open Xml SDK 会消耗更多内存。

谢谢, 阿内夫

.net vsto powerpoint openxml openxml-sdk
4个回答
4
投票

Open XML SDK 2.0 构建在

System.Packaging
之上,因此更容易编写和维护代码。 我发现我能够编写两行 Open XML SDK 代码,而当我使用
System.Packaging
编写时,代码已超过 200 行。 就使用更多内存而言,我没有遇到任何问题,并且发现可维护性和可读性超过了内存使用量的最小增加。

将 Open XML SDK 与 Power Point 结合使用的资源并不多,但这里有两个资源可以帮助您入门:

Brian Jones 和 Zeyad Rajabi 博客

MSDN


3
投票

在开始使用任何 API 之前,我首先建议您了解演示标记语言 (PresentationML)。

有一本免费的在线书籍描述了PresentationML、WordML 和 SpreadsheetML,称为“Open XML Expanded”。 第 3 章介绍了PresentationML,并为您提供了更好地使用OpenXML API 来完成您需要执行的所有任务所需的知识。


2
投票
Document Reflector

(SDK 2.5 的 Open XML Productivity Tool 中的 Reflect Code 工具)。加载 .pptx 并获取 C# 代码来生成该 .pptx - 这样您就可以了解PresentationML 的结构,并了解在哪里放置所需的参数和选项 - 这并不容易,但却是一个好的开始


0
投票
FAST

的一个好方法是观察 powerpoint 如何使用它!我的技术非常规,但速度极快,能够尽快开始提供价值!

保存新的幻灯片 - 从 0 张幻灯片开始
  1. 创建一个新目录,与你的ppt同名,与其相邻
  2. 将其初始化为 git 存储库
  3. 构建一个名为 unpack-pptx.sh 的新脚本
  4. #!/usr/bin/env bash # Usage: ./unpack-pptx.sh PresentationName.pptx NAME="${1%.*}" # Remove the file extension set -e set -x # Check if "--new" argument is provided if [[ "$2" != "--new" ]]; then # Check if directory already exists if [ -d "$NAME" ]; then # If directory exists and --new tag is not provided, delete recursively rm -rf "$NAME" fi # If --new tag is provided, create new name else NAME="$NAME-$(date +%Y%m%d%H%M%S)" fi mkdir "$NAME" cp "$1" "$NAME"/ # Copy the original file without modifying the name cd "$NAME" unzip "$1" # Unzip the original file without modifying the name rm "$1" # Remove the original file exit 0
使用您的 ppt 文件运行此脚本
  1. 提交目录中的更改
  2. 在 powerpoint 中更改演示文稿,保存并重新运行脚本,并观察 powerpoint 如何修改 XML 架构!
  3. 这是一种经典的逆向工程技术,非常适合快速而积极的学习。将其与 ChatGPT 配对以提问,然后您就可以开始比赛了!

附注 一旦开始在 C# 中使用 OpenXML SDK,请使用智能感知来阅读文档!注意命名空间以及类在 XML 形式中表示的内容的提示。

© www.soinside.com 2019 - 2024. All rights reserved.