17

我有一个包含所需布局的“模板”docx 文档,并希望使用 C# 插入内容,但我找不到唯一解决文档特定部分的方法,例如段落或表格。唯一标识文档中元素的最佳方法是什么?谢谢,马特夏普。

4

4 回答 4

11

您的模板是如何构建的?它是否使用作为 *.docx 的一部分加载的底层 XML 模式?或者您是否在使用开发人员功能区中的内容控件,在这种情况下,每个控件都由给定的标签名称唯一标识?这两种方法都将使您更容易识别文档的某些部分,因为您可以控制表格或段落的位置。

此外,您可能需要考虑使用Open XML SDK 2.0(使用 .NET 3.5)。它包括一个方便的文档反射器工具,允许您打开和检查任何 Open XML 文档,并显示如何为您单击的任何元素生成代码。

除此之外,要了解有关内容控件的更多信息,您可以查看以下帖子:

于 2009-09-03T05:44:22.067 回答
3

您可以使用文档变量/字段吗?只需转到插入->快速部件->字段->文档变量,输入变量名称。

示例: 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

于 2009-09-02T00:03:47.303 回答
3

我认为您正在寻找书签或内容控件(在功能区的开发人员选项卡上,此处的代码示例)
我在 Excel 中使用命名范围来实现相同目的。

于 2009-09-02T15:35:50.223 回答
1

有几个选项可以做到这一点。

我创建了一个简单的开源库,它将用值替换标签。

例如Hi {name}withdata={name:"John"}将替换为Hi John.

这是: https ://github.com/edi9999/docxtemplater

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

于 2014-09-22T13:44:03.113 回答