如何使用OpenXML构建自定义句子

时间:2011-10-25 15:33:50

标签: c# ms-word openxml openxml-sdk

我想知道是否有办法在.docx中“玩”句子。

这就是我需要做的事情:

我在文档中有一个段落

我的段落的例子: 这是我需要根据某些条件格式化 的段落 ,我无法想象如何使用openxml sdk执行此操作。 示例结束。

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

基本上我想要实现的是拥有一个模板文档,我的产品所有者可以随意编辑,但在本文档中,文本可能会根据文档的生成对象进行更改。

由于

2 个答案:

答案 0 :(得分:1)

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

在您的c#应用程序代码中,您可以非常轻松地通过其标记找到内容控件。找到后,您可以保存其父节点,删除内容控件并插入您想要的文本作为之前保存的父节点的子段落元素。

您可以使用“开发人员”标签添加内容控件。如果您看不到它,可以使用此处描述的步骤进行显示:http://msdn.microsoft.com/en-us/library/bb608625.aspx

答案 1 :(得分:0)

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