【问题标题】:How to build custom sentences with OpenXML如何使用 OpenXML 构建自定义句子
【发布时间】:2011-10-26 23:47:47
【问题描述】:

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

这是我需要做的:

我在文档中有一个段落

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

因此,根据我在 c# 中评估的条件,我想添加/删除文本。您应该知道的另一件事是,我希望产品负责人更改文档的文本。

基本上,我想要实现的是拥有一个我的产品负责人可以随意编辑的模板文档,但在此文档中,文本可能会根据文档的生成对象而改变。

谢谢

【问题讨论】:

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


    【解决方案1】:

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

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

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

    【讨论】:

    • 这正是我想要的。非常感谢!!
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2014-09-08
      • 2019-04-08
      • 2023-02-24
      • 1970-01-01
      • 2021-03-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多