我想创建一个 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 内容控制工具包。

这是关于如何做您正在尝试的事情的非常简短的解释。

  1. 您需要有权访问 Word 功能区上的开发人员选项卡。要实现此功能,请单击左上角的“Office”(圆形),然后选择菜单底部的“Word 选项”。在第一个选项页面上有一个复选框用于显示开发人员工具栏。

  2. 使用开发人员工具栏在页面上添加所需的内容控件。单击开发人员栏的内容控件部分中的属性按钮,然后设置名称和标签属性(我坚持使用相同的名称命名名称和标签字段)。

  3. 保存并关闭word文档。

  4. 打开内容控制工具包,然后使用该工具包打开您的文档。使用左手的痛苦来创建一些自定义 xml 来链接到您的控件。

  5. 现在,使用绑定视图拖放自定义 xml 与工具包右侧面板中显示的自定义控件之间的映射。

  6. 您可以使用 openxml sdk 1.0 或 2.0(仍在 ctp 中)在代码中打开 Word 文档,并访问作为 Word 文档一部分包含的自定义 xml 文件。

如果您想看看您的 Word 文档如何显示为 xml。复制您的 Word 文档,然后将其重命名为“a.zip”。双击 zip 文件,然后浏览文件夹结构。Word 文档的主要内容保存在 Word 文件夹下名为“document.xml”的文件中。文档的自定义 xml 部分保存在 customXml 文件夹下,通常可以在名为“item1.xml”的文件中找到。

我希望这个简短的解释能让您入门并运行。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top