如何替换模板 docx 文档和 Open XML SDK 2.0 中的内容(8 月 9 日)?

StackOverflow https://stackoverflow.com/questions/1361588

  •  20-09-2019
  •  | 
  •  

我有一个“模板”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 ##”,然后做一个搜索和替换这些变量。

例如: http://geekswithblogs.net/DanBedassa/archive/2009/01/16/dynamically-generating-word-2007-.docx-documents-using-.net.aspx

我认为您正在寻找书签或内容控件(在功能区的“开发人员”选项卡上,代码示例 这里)
我在 Excel 中使用命名范围来达到同样的目的。

有几种选择来做到这一点。

我已经创建了一个简单的开源库将由值替换标签。

有关与Hi {name}例如data={name:"John"}将由Hi John被替换。

下面,它是: https://github.com/edi9999/docxtemplater

演示: http://javascript-ninja.fr/docxgenjs/examples/demo。 HTML

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top