2017-06-22 73 views
1

我有一個帶有需要更改字段的word文檔(請參閱下文),但由於我不明白的原因,在此過程中我的修改未保存。OpenXML:以倍數運行替換文本

我在C#中使用OpenXML .NET SDK。 代碼:

using (WordprocessingDocument myDoc = WordprocessingDocument.Open(destinationFile, true)) 
{ 
    var body = myDoc.MainDocumentPart.Document.Body; 

    foreach (var headerParts in myDoc.MainDocumentPart.HeaderParts) 
    { 
     foreach (var Para in headerParts.Header.Descendants<DocumentFormat.OpenXml.Wordprocessing.Paragraph>()) 
     { 
      foreach (var run in Para.Descendants<DocumentFormat.OpenXml.Wordprocessing.Run>()) 
      { 
       foreach (var text in run.Descendants<DocumentFormat.OpenXml.Wordprocessing.Text>()) 
       { 
        text.Text = text.Text.Replace("Nom", cv.firstName); 
        text.Text = text.Text.Replace("Prenom", cv.secondName); 
        text.Text = text.Text.Replace("NbAnnee", cv.nbAnneeExp.ToString()); 
        text.Text = text.Text.Replace("Objet", cv.objet); 
       } 
      } 
     } 
    } 
    myDoc.MainDocumentPart.Document.Save(); 
} 

我不知道我錯了,我也跟着很多的人出席SO模板。

有沒有人有想法?

+0

您的代碼爲我工作。你確定你想要替換的字符串是正確的嗎?有可能在某處上傳你的源文件嗎? – petelids

+0

與此同時,我使用了內容控件,這就是爲什麼它不起作用:這些控制器無法編輯,因此我使用了一種解決方法:使用InnerXML:/。 –

+0

但是@petelids謝謝你的幫助。如果你有時間,你有任何答案嗎? https://stackoverflow.com/questions/44701541/openxml-net-replace-text-in-control-content –

回答

0

所以,我發現自己的答案:其實,我的文檔,我添加內容控制器和因爲沒有編輯,則changement不能過程中保存。

道德:此方法只...如果你不使用內容控制器:d