我想在不使用對象模型的情況下創建Word 2007文檔。所以我寧願使用開放的xml格式來創建它。到目前爲止,我已經能夠創建文檔。現在我想添加一個內容控件並將其映射到xml。任何人都可以引導我相同的?如何使用OpenXML在Word 2007文檔中添加內容控件
回答
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內容控制工具包。
這是關於如何做你正在嘗試的一個非常簡短的解釋。
您需要訪問Word功能區上的開發人員選項卡。要實現這一點,請點擊左上角的辦公室(Round thingy)和菜單底部的Select Word Options。在第一個選項頁面上,有一個複選框顯示開發人員工具欄。
使用開發人員工具欄在頁面上添加所需的內容控件。單擊開發人員欄的「內容」控件部分中的屬性按鈕,然後設置名稱和標記屬性(我堅持使用相同的名稱命名名稱和標記字段)。
保存並關閉word文檔。
打開內容控制工具包,然後用工具包打開文檔。使用左手痛苦創建一些自定義xml鏈接到您的控件。
現在使用綁定視圖拖放自定義xml和顯示在工具箱右側面板中的自定義控件之間的映射。
您可以使用openxml sdk 1.0或2.0(仍在ctp中)在代碼中打開word文檔,並訪問作爲word文檔一部分包含的自定義xml文件。
如果你想看看你的Word文檔看起來如何是XML。製作Word文檔的副本,然後重命名爲「a.zip」。雙擊壓縮文件,然後導航文件夾結構。 Word文檔的主要內容保存在名爲「document.xml」的文件夾下。文檔的自定義xml部分位於customXml文件夾下,通常位於名爲「item1.xml」的文件中。
我希望這個簡短的解釋讓你開始運行。
我想添加內容控制編程使用打開xml sdk .... – Anoop 2009-12-09 07:17:48
- 1. 如何在Word 2010文檔中使用OpenXML SDK解鎖內容控件?
- 2. 如何通過OpenXml SDK 2.0更改Word 2007中內容控件的內容?
- 3. OpenXML將文本插入內容控件Word 2007
- 4. 使用OpenXML在Word文檔中的內容控件上應用樣式
- 5. 使用OpenXML將圖片內容控件填充到word文檔的標題中
- 6. 如何使用OpenXml將外部圖像添加到word文檔?
- 7. 以編程方式在.NET中的Word文檔(OpenXML)中填充內容控件
- 8. Word文檔2010中的內容控件
- 9. Word 2007-2013內容控制
- 10. 添加內容控件的代碼Word 2007 C#
- 11. 在Word文檔中使用VBScript選擇內容控件
- 12. 如何將Word加載項2007添加到特定的Word 2007文檔
- 13. OpenXML:允許編輯鎖定的Word文檔中的內容控件
- 14. 無法在Word中使用OpenXML填充內容控制
- 15. 如何使用OpenXML在Word文檔中設置發佈日期
- 16. 如何在OpenXML中嵌入字體文件Word文檔
- 17. 使用OpenXml創建Word文檔(docx)
- 18. 使用OpenXML創建Word文檔
- 19. 使用OpenXML SDK創建Word文檔 - 使用OpenXML SDK創建CLI
- 20. 使用OpenXml在現有Word文檔中動態添加行到表格
- 21. 在將word文檔插入到文檔中後,我在word文檔中丟失了內容控件
- 22. openxml-sdk - 使用settings.xml創建word 2007文件
- 23. 如何在textarea中加載word文檔的內容
- 24. 使用OpenXML替換Word 2010文本框中的內容
- 25. OpenXML SDK 2.0 vs Aspose在.NET中用於服務器端word 2007文檔生成
- 26. 如何加載添加到Word文檔的所有控件(Microsoft Office Interop Word)?
- 27. 使用VSTO向Word文檔添加WinForm控件
- 28. 使用PHP將Word文檔添加到另一個Word文檔
- 29. 在Word中配置內容控件以添加新行
- 30. 加載word文檔內容到PrintDocument
Thanx的答案! 儘管我已經在MSDN中得到了一篇很好的文章,它也解釋了XML映射... http://msdn.microsoft.com/en-us/library/dd469465.aspx – Anoop 2009-12-14 07:26:12
在OpenXML SDK 2中,Alias現在是SdtAlias。 – 2016-09-19 19:02:33