我想开发一个可以处理 PowerPoint 模板并填充格式化数据的类库。主要涉及表格、标签、幻灯片克隆。我想在 .Net 4 中使用 Open Xml 来实现此目的。
我想要一些这方面的建议和参考。还想知道哪种方法更好,是使用 OpenXml SDK 2.0 还是 System.Packaging,因为我在某些地方读到使用 Open Xml SDK 会消耗更多内存。
谢谢, 阿内夫
Open XML SDK 2.0 构建在
System.Packaging
之上,因此更容易编写和维护代码。 我发现我能够编写两行 Open XML SDK 代码,而当我使用 System.Packaging
编写时,代码已超过 200 行。 就使用更多内存而言,我没有遇到任何问题,并且发现可维护性和可读性超过了内存使用量的最小增加。
将 Open XML SDK 与 Power Point 结合使用的资源并不多,但这里有两个资源可以帮助您入门:
(SDK 2.5 的 Open XML Productivity Tool 中的 Reflect Code 工具)。加载 .pptx 并获取 C# 代码来生成该 .pptx - 这样您就可以了解PresentationML 的结构,并了解在哪里放置所需的参数和选项 - 这并不容易,但却是一个好的开始
的一个好方法是观察 powerpoint 如何使用它!我的技术非常规,但速度极快,能够尽快开始提供价值!
保存新的幻灯片 - 从 0 张幻灯片开始#!/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
附注 一旦开始在 C# 中使用 OpenXML SDK,请使用智能感知来阅读文档!注意命名空间以及类在 XML 形式中表示的内容的提示。