2017-06-22 24 views
1

私は変更する必要のあるフィールド(下記参照)を持つ単語文書を持っていますが、私が理解していない理由のために、プロセス中に変更が保存されません。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

私は自分自身の答えを見つけました。実際、私の文書では、私はコンテンツコントローラを追加しました。編集可能ではないため、プロセス中にチェンジメントを保存できませんでした。

道徳:D

関連する問題