OOXML更新.docx文档标题中的内容控件

时间:2017-04-27 17:26:16

标签: c# ms-word openxml

我正在打开.docx文件,使用以下代码遍历所有内容控件并将文本设置为" foo bar文本"。这适用于文档正文中的内容控件。 问题是它永远不会更新页眉和页脚中的内容控件。 有什么我想念的吗?

        using (WordprocessingDocument doc = WordprocessingDocument.Open(resultDocumentPath, true))
        {
            MainDocumentPart mainPart = doc.MainDocumentPart;
            foreach (SdtElement sdt in mainPart.Document.Descendants<SdtElement>())
            {
                Run formattedRun = new Run();
                RunProperties runProperties = new RunProperties();
                runProperties.Append(new Text("the foo bar text"));
                formattedRun.Append(runProperties);
                sdt.Append(new Paragraph(new Run(formattedRun)));

            }
        }

1 个答案:

答案 0 :(得分:1)

页眉和页脚存储在与主文档正文不同的部分中。

在原始OpenXML标记中,相应的文件是“header#.xml”和“footer#.xml”。

在OpenXML SDK中,您需要遍历MainDocumentPart.HeaderPartsMainDocumentPart.FooterParts