asp.net - 使用 XML 架构和 OpenXML SDK 的 WordML 模板

标签 asp.net openxml openxml-sdk wordml

我正在尝试使用通过 OpenXML SDK 读入的 docx 作为 .Net Web 应用程序中套用信函的模板(本质上)。我有一个具有我想要的格式的 docx,并用从 xsd 定义的 XML 架构标签进行标记(无论它们叫​​什么,帮助对此毫无用处)。

我在 Google 上发现的唯一类似的东西似乎是用带有所需数据的文本元素替换 CustomXmlBlock 元素。这看起来……困惑且脆弱。

我还有一个额外的复杂性,即某些数据是分层的,包含部分的元素,然后是该部分中的项目。这似乎完全打破了上面的方法。

那么,有人可以指出我这样做的正确方向,或者建议一种更好的方法来处理模板套用信函吗?

最佳答案

有多种选择:

  1. 您正在做什么,XSD 架构映射。这是在 Word 2003 中引入的。它实际上只在该版本的 Word 中真正活跃,因为当 Word 2007 推出时,首选的新表单方法变成了 #2。
  2. 内容控制。下面详细介绍这一点。
  3. 书签是久经考验的。如果你有兴趣,有一篇文章here .

对于内容控件1,概念很简单:将内容控件包装在所需的层次结构中。也就是说,例如,有一个日期选择器内容控件和一个富文本内容控件,然后将它们分组。然后在富文本内容控件内,放置一个组合框内容控件。 Eric White 就此写了一篇很棒的入门文章,从内容控件内部检索内容:Processing all Content Parts in an Open XML WordprocessingML Document 。本文是对内容控件的更全面的介绍,其链接为 Using Open XML WordprocessingML Documents as Data Sources .

有关内容控制的更多链接:

  1. Brian Jones 的网站上有很多精彩的文章。我相信这是他的第一个:The Easy Way to Assemble Multiple Word DocumentsCreate a rich Word document based on your own custom XML (without the need for XSLT) .
  2. Word Content Control Toolkit 。可能是使用内容控件的最佳工具。
  3. Visual How To Content 。这里的许多文章都涉及内容控制。

1 要在 Word 客户端中手动使用内容控件,请从选项中启用“开发人员”功能区,然后插入内容控件并从左侧部分设置其属性。开发人员功能区中的控件组。

关于asp.net - 使用 XML 架构和 OpenXML SDK 的 WordML 模板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3764585/

相关文章:

asp.net - 如何在一个 Azure Web App 上托管多个应用程序

asp.net - Delphi for .NET 在 .NET 库搜索目录中找不到共享文件(“[DCC 错误] F1026 文件未找到)”

c# - Jquery 在客户端对 gridview 列进行排序

PHP OOXML 库?

c# - 尝试将图像嵌入到 Word 文档中时出现关系错误

.net - .NET 3.5.1 中的 DocumentFormat.OpenXml 2.5 给出警告

c# - 我如何知道word文档中特定文本的字体大小(例如)?

javascript - 动态添加类到控件时,单击事件不起作用

.net - 关于文档格式 Open Xml 的注释是什么?

c# - 在 OpenXml 复选框 word2013 中设置值