OpenXML:替换多次运行中的文本

时间:2017-06-22 07:06:10

标签: c# .net ms-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();
}

我不知道我错在哪里,我跟踪了很多模板。

有没有人有想法?

1 个答案:

答案 0 :(得分:0)

所以我找到了答案:事实上,在我的文档中,我添加了内容控制器,因为无法编辑,所以在此过程中无法保存更改。

道德:只有当你不使用内容控制器时,这种方法才有效:D