如何使用OpenXML在Word 2007文档中添加内容控件

Ano*_*oop 6 office-2007 ms-word openxml openxml-sdk

我想在不使用对象模型的情况下创建一个单词2007文档.所以我更喜欢使用开放的xml格式创建它.到目前为止,我已经能够创建该文档.现在我想在其中添加一个内容控件并将其映射到xml.任何人都可以指导我相同的???

小智 9

Anoop,

您说您可以使用OpenXmlSdk创建文档.通过该假设,您可以使用以下代码创建内容控件以添加到Document的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();
Run Code Online (Sandbox Code Playgroud)

我希望这能回答你问题的一部分.通过"将其映射到XML",我不明白你的想法.您的意思是说要创建CustomXmlBlock并向其添加ContentControl吗?