C# 如何使用OpenXML构建自定义语句

C# 如何使用OpenXML构建自定义语句,c#,ms-word,openxml,openxml-sdk,C#,Ms Word,Openxml,Openxml Sdk,我想知道是否有一种在.docx中“玩”句子的方法 以下是我需要做的: 我在文件中有一段 我的段落示例: 这是一个段落,我需要根据一些条件格式化,我不知道如何使用OpenXMLSDK来实现这一点。 例子的结尾 因此,根据我在c#中计算的条件,我想添加/删除文本。您应该知道的另一件事是,我希望产品所有者更改文档的文本 基本上,我想要实现的是有一个模板文档,我的产品所有者可以随意编辑,但是在这个文档中,文本可能会根据文档的生成者而改变 谢谢替换文本时会遇到一些复杂的问题,因为文本可以分为多个运行。如果

我想知道是否有一种在.docx中“玩”句子的方法

以下是我需要做的:

我在文件中有一段

我的段落示例: 这是一个段落,我需要根据一些条件格式化,我不知道如何使用OpenXMLSDK来实现这一点。 例子的结尾

因此,根据我在c#中计算的条件,我想添加/删除文本。您应该知道的另一件事是,我希望产品所有者更改文档的文本

基本上,我想要实现的是有一个模板文档,我的产品所有者可以随意编辑,但是在这个文档中,文本可能会根据文档的生成者而改变


谢谢

替换文本时会遇到一些复杂的问题,因为文本可以分为多个运行。如果您希望您的所有者能够编辑文档,这是您必须解决的问题。幸运的是,这里有一些示例代码,您可以将其用作。PowerTools是作为PowerShell的cmdlet编写的,但您可以为自己的程序使用核心C#代码。TextReplacer.cs模块应该为您提供一个良好的起点。您将需要它所依赖的一些其他模块,如PtOpenXmlDocument.cs、PtOpenXmlUtil.cs和PtUtil.cs。我希望这会有所帮助。

您可以在Word中创建模板文档,并在希望动态插入文本的每个位置创建内容控件。对于每个创建的内容控件,应设置唯一的标记属性值

在c#应用程序代码中,您可以很容易地通过其标记找到内容控件。找到它后,可以保存其父节点,删除内容控件,并为先前保存的父节点插入所需的文本作为子段落元素


您可以使用“开发人员”选项卡添加内容控件。如果您看不到它,您可以使用这里描述的步骤来显示它:。

这正是我想要的。非常感谢你!!