如何使用 OpenXML 在 Word 2007 文档中添加内容控件
-
12-09-2019 - |
题
我想创建一个 word 2007 文档而不使用对象模型。所以我更愿意使用开放 xml 格式创建它。到目前为止我已经能够创建该文档。现在我想在其中添加一个内容控件并将其映射到xml。有人可以指导我吗?
解决方案
Anoop,
您说您能创造使用OpenXmlSdk文档。有了这个假设,你可以使用下面的代码来创建内容控件添加到文档的Wordprocessing.Body元素。
//praragraph to be added to the rich text content control
Run run = new Run(new Text("Insert any text Here") { Space = StaticTextConstants.Preserve });
Paragraph paragraph = new Paragraph(run);
SdtProperties sdtPr = new SdtProperties(
new Alias { Val = "MyContentCotrol" },
new Tag { Val = "_myContentControl" });
SdtContentBlock sdtCBlock = new SdtContentBlock(paragraph);
SdtBlock sdtBlock = new SdtBlock(sdtPr, sdtCBlock);
//add this content control to the body of the word document
WordprocessingDocument wDoc = WordprocessingDocument.Open(path, true); //path is where your word 2007 file is
Body mBody = wDoc.MainDocumentPart.Document.Body;
mBody.AppendChild(sdtBlock);
wDoc.MainDocumentPart.Document.Save();
wDoc.Dispose();
我希望这回答了你的问题的一部分。我不明白你所说的“其映射到XML”彪什么。你的意思是说,你要创建CustomXmlBlock和ContentControl中补充呢?
其他提示
请在 www.codeplex.com 上查找 Word 内容控制工具包。
这是关于如何做您正在尝试的事情的非常简短的解释。
您需要有权访问 Word 功能区上的开发人员选项卡。要实现此功能,请单击左上角的“Office”(圆形),然后选择菜单底部的“Word 选项”。在第一个选项页面上有一个复选框用于显示开发人员工具栏。
使用开发人员工具栏在页面上添加所需的内容控件。单击开发人员栏的内容控件部分中的属性按钮,然后设置名称和标签属性(我坚持使用相同的名称命名名称和标签字段)。
保存并关闭word文档。
打开内容控制工具包,然后使用该工具包打开您的文档。使用左手的痛苦来创建一些自定义 xml 来链接到您的控件。
现在,使用绑定视图拖放自定义 xml 与工具包右侧面板中显示的自定义控件之间的映射。
您可以使用 openxml sdk 1.0 或 2.0(仍在 ctp 中)在代码中打开 Word 文档,并访问作为 Word 文档一部分包含的自定义 xml 文件。
如果您想看看您的 Word 文档如何显示为 xml。复制您的 Word 文档,然后将其重命名为“a.zip”。双击 zip 文件,然后浏览文件夹结构。Word 文档的主要内容保存在 Word 文件夹下名为“document.xml”的文件中。文档的自定义 xml 部分保存在 customXml 文件夹下,通常可以在名为“item1.xml”的文件中找到。
我希望这个简短的解释能让您入门并运行。