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

发布于 2024-08-03 17:39:08 字数 109 浏览 9 评论 0原文

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

I have a "template" docx document which contains the desired layout, and wish to insert content using C#, but I cannot find a way to uniquely address specific sections of the document, such as paragraphs or tables.
What is the best way to uniquely identify elements in the document?
Thanks,
Matt Sharpe.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

無處可尋 2024-08-10 17:39:08

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

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

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

How is your template built? Does it use an underlying XML Schema loaded as part of the *.docx? Or are you using content controls off of the Developer ribbon, in which case each control is uniquely identified by a given tag name? Both of these approaches would make identifying certain sections of your document easier as you could control where tables or paragraphs would be.

Also, you may want to consider using the Open XML SDK 2.0 (uses .NET 3.5). It includes a handy Document Reflector tool that allows you to open up and inspect any Open XML document and shows how to generate the code for any element you click on.

Apart from that, to learn more about content controls you can check these posts:

邮友 2024-08-10 17:39:08

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

例子:
http://www.codeproject.com/KB/office/Fill_Mergefields.aspx

您还可以仅使用占位符文本值,例如“##insert_first_name##”,然后搜索并替换这些变量。

例子:
链接

Can you use document variables/fields? Just go to Insert->Quick Parts->Fields->Doc Variable, enter name of variable.

example:
http://www.codeproject.com/KB/office/Fill_Mergefields.aspx

You could also just use placeholder text values like "##insert_first_name##" and then do a search and replace for those variables.

example:
Link

青丝拂面 2024-08-10 17:39:08

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

I think you are looking for either bookmarks, or content controls (on the Ribbon's Developer tab, code example here)
I've used Named Ranges in Excel for the same purpose.

↘紸啶 2024-08-10 17:39:08

有多种选择可以做到这一点。

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

例如,带有 data={name:"John"}Hi {name} 将替换为 Hi John

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

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

There are several options to do this.

I have created a simple open-source library that will replace tags by values.

For example Hi {name} with data={name:"John"} will be replaced by Hi John.

Here it is :
https://github.com/edi9999/docxtemplater

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

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文