2015-08-17 69 views
0

我正在嘗試編寫一些代碼來使用XML文件填充某個內容控件的Word文件。對於我使用下面的代碼:無法使用自定義XML填充Word內容控件

string outPath = @"D:\template_created.docx"; 
string docPath = @"D:\template.docx"; 
string xmlPath = @"D:\template.xml"; 

File.Copy(docPath, outPath); 

using (WordprocessingDocument doc = WordprocessingDocument.Open(outPath, true)) 
{ 
    MainDocumentPart mdp = doc.MainDocumentPart; 
    if (mdp.CustomXmlParts != null) 
    { 
     mdp.DeleteParts<CustomXmlPart>(mdp.CustomXmlParts); 
    } 

    CustomXmlPart cxp = mdp.AddCustomXmlPart(CustomXmlPartType.CustomXml); 
    FileStream fs = null; 

    try 
    { 
     fs = new FileStream(xmlPath, FileMode.Open); 

     cxp.FeedData(fs); 
     mdp.Document.Save(); 
    } 
    finally 
    { 
     if (fs != null) 
     { 
      fs.Dispose(); 
     } 
    } 
} 

在這裏,我的XML文件:

<root> 
    <firstname_1>Marc</firstname_1> 
    <lastname_1>Swit</lastname_1> 
    <firstname_2>Paul</firstname_2> 
    <lastname_2>Gevaert</lastname_2> 
</root> 

當我運行的應用程序,它創建的自定義XML文件,並把它添加到我的Word文件。當我打開Word文件時,沒有錯誤,但沒有填充所有內容控件

當我將template_created.docx重命名爲template_created.zip時,提取文件並瀏覽它們,發現我的XML文件正確創建並且在customXML文件夾中有正確的內容。

有人有想法幫助我嗎?

謝謝!

編輯17/08/15:在我的回答如下

回答

0

第一種解決方案,我發現我的問題的解決方案。實際上,首先我需要創建一個XML文件,其中包含與我的內容控件相對應的所有元素,並在Word Content Control Toolkit中使用此文件以將XML附加到我的Word文件中。

之後,當我運行我的應用程序時,和內容控制已填充

相關問題