Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net 使用XMLSchema和OpenXMLSDK的WordML模板_Asp.net_Openxml_Openxml Sdk_Wordml - Fatal编程技术网

Asp.net 使用XMLSchema和OpenXMLSDK的WordML模板

Asp.net 使用XMLSchema和OpenXMLSDK的WordML模板,asp.net,openxml,openxml-sdk,wordml,Asp.net,Openxml,Openxml Sdk,Wordml,我正在尝试使用一个通过OpenXMLSDK读入的docx作为.NETWeb应用程序中表单信函的模板(基本上)。我有一个docx,它具有我想要的格式,用xsd定义的XML模式标记进行标记(不管它们叫什么,在这方面的帮助是非常无用的) 我在Google上发现的唯一相似之处似乎是用所需数据的文本元素替换CustomXmlBlock元素。这似乎。。。凌乱而脆弱 我还有一个额外的复杂之处,就是一些数据是层次化的,有用于部分的元素,然后是该部分中的项目。这似乎完全打破了上述方法 那么,有没有人能为我指出正确

我正在尝试使用一个通过OpenXMLSDK读入的docx作为.NETWeb应用程序中表单信函的模板(基本上)。我有一个docx,它具有我想要的格式,用xsd定义的XML模式标记进行标记(不管它们叫什么,在这方面的帮助是非常无用的)

我在Google上发现的唯一相似之处似乎是用所需数据的文本元素替换CustomXmlBlock元素。这似乎。。。凌乱而脆弱

我还有一个额外的复杂之处,就是一些数据是层次化的,有用于部分的元素,然后是该部分中的项目。这似乎完全打破了上述方法


那么,有没有人能为我指出正确的方向,或者建议一种更好的方法来处理模板格式字母?

有很多选择:

  • 您正在做的是,XSD模式映射。这是在Word 2003中引入的。它只在Word的那个版本中真正活跃,因为当Word 2007问世时,人们更喜欢的新形式方法变成了#2
  • 内容控件。下面将对此进行详细介绍
  • 经过验证的和真实的都是书签。如果你感兴趣,这里有一篇文章
  • 对于内容控件1,概念很简单:将内容控件包装到所需的层次结构中。也就是说,例如,有一个日期选择器内容控件和一个富文本内容控件,然后将它们分组。然后在富文本内容控件内,放置一个组合框内容控件。Eric White在从位于的内容控件内部检索内容时就此写了一篇很棒的入门文章。本文对其链接中的内容控件进行了更全面的介绍

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

  • 布赖恩·琼斯的网站上有很多很棒的文章。我相信这是他的第一次
  • 这个。可能是使用内容控件的最佳工具
  • 。这里的许多文章都涉及内容控件

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

    哇,太好了,我甚至不知道存在内容控件。我要接受这个并奖励赏金,尽管我有一个问题,更像是确认。似乎没有内置对任何类型的重复结构(表、列表等)和内容控件的支持。我假设我在文档中添加了一个富文本内容控件作为占位符,然后使用OpenXML sdk生成表或列表,并将其设置为内容控件的内容?@Matt S:我添加了一些额外的链接,这些链接也应该可以帮助您入门。有很多方法可以使用内容控件来实现中继器,其中之一就是您提到的。另一种方法是使用构建块。另一种方法是做与您所提到的相反的事情—放置一个只有标题行的表,然后在单元格中创建填充了CCs的行。一定要看看“内容控制工具包”这个词——在你变得更加熟悉CCs之前,它将挽救你的生命。@Matt S,这基本上是正确的。您需要一种方法来说明哪个内容控件是重复占位符。提出了一种方法。