簡體   English   中英

如何使用OpenXML在Word 2007文檔中添加內容控件

[英]How to add content control in a Word 2007 document using OpenXML

我想在不使用對象模型的情況下創建一個單詞2007文檔。 所以我更喜歡使用開放的xml格式創建它。 到目前為止,我已經能夠創建該文檔。 現在我想在其中添加一個內容控件並將其映射到xml。 任何人都可以指導我相同的???

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();

我希望這能回答你問題的一部分。 通過“將其映射到XML”,我不明白你的想法。 您的意思是說要創建CustomXmlBlock並向其添加ContentControl嗎?

在www.codeplex.com上查看Word Content Control Toolkit。

以下是關於如何做你正在嘗試的事情的非常簡短的解釋。

  1. 您需要訪問Word功能區上的開發人員選項卡。 要實現此功能,請單擊左上角的Office(Round thingy)並選擇菜單底部的Word Options。 在第一個選項頁面上有一個復選框,顯示開發人員工具欄。

  2. 使用開發人員工具欄在頁面上添加所需的內容控件。 單擊開發人員欄的“內容控件”部分中的“屬性”按鈕,然后設置名稱和標簽屬性(我堅持使用相同的名稱命名名稱和標簽字段)。

  3. 保存並關閉word文檔。

  4. 打開Content控件工具包,然后使用工具包打開文檔。 使用左手疼痛創建一些自定義xml以鏈接到您的控件。

  5. 現在使用綁定視圖拖放自定義xml與工具箱右側面板中顯示的自定義控件之間的映射。

  6. 您可以使用openxml sdk 1.0或2.0(仍在ctp中)在代碼中打開word文檔,並訪問作為word文檔一部分包含的自定義xml文件。

如果你想看看你的word文檔看起來像xml。 制作word文檔的副本,然后將其重命名為“a.zip”。 雙擊zip文件,然后導航文件夾結構。 word文檔的主要內容保存在名為“document.xml”的文件中的word文件夾下。 文檔的自定義xml部分保存在customXml文件夾下,通常位於名為“item1.xml”的文件中。

我希望這個簡短的解釋能讓您了解並運行。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM