如何替换模板 docx 文档和 Open XML SDK 2.0 中的内容(8 月 9 日)?
题
我有一个“模板”docx 文档,其中包含所需的布局,并希望使用 C# 插入内容,但我无法找到一种方法来唯一地处理文档的特定部分,例如段落或表格。唯一标识文档中元素的最佳方法是什么?谢谢,马特·夏普。
解决方案
您的模板是如何构建的?它是否使用作为 *.docx 的一部分加载的底层 XML 架构?或者您是否使用开发人员功能区之外的内容控件,在这种情况下,每个控件都由给定的标签名称唯一标识?这两种方法都可以让您更轻松地识别文档的某些部分,因为您可以控制表格或段落的位置。
另外,您可能需要考虑使用 开放 XML SDK 2.0 (使用.NET 3.5)。它包括一个方便的 Document Reflector 工具,允许您打开和检查任何 Open XML 文档,并展示如何为您单击的任何元素生成代码。
除此之外,要了解有关内容控制的更多信息,您可以查看以下帖子:
其他提示
您可以使用文档变量/字段?只要到插入 - >快速配件 - >板块 - > doc变量,输入变量的名称。
例如: http://www.codeproject.com/KB/office/Fill_Mergefields.aspx
您也可以只使用占位符文本值分别为“## insert_first_name ##”,然后做一个搜索和替换这些变量。
我认为您正在寻找书签或内容控件(在功能区的“开发人员”选项卡上,代码示例 这里)
我在 Excel 中使用命名范围来达到同样的目的。
有几种选择来做到这一点。
我已经创建了一个简单的开源库将由值替换标签。
有关与Hi {name}
例如data={name:"John"}
将由Hi John
被替换。
下面,它是: https://github.com/edi9999/docxtemplater
演示: http://javascript-ninja.fr/docxgenjs/examples/demo。 HTML