OOXML 更新 .docx 文档中的内容控件 headers
OOXML update Content Controls in .docx document headers
我正在打开一个 .docx 文件,使用以下代码遍历所有内容控件并将那里的文本设置为 "the foo bar text"。这对于文档 body 中的内容控件非常有用。
问题是它从不更新 header 和页脚中的内容控件。
有什么我想念的吗?
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)));
}
}
页眉和页脚与主文档正文分开存储。
在原始 OpenXML 标记中,相应的文件是 "header#.xml" 和 "footer#.xml"。
在 OpenXML SDK 中,您需要遍历 MainDocumentPart.HeaderParts
和 MainDocumentPart.FooterParts
。
我正在打开一个 .docx 文件,使用以下代码遍历所有内容控件并将那里的文本设置为 "the foo bar text"。这对于文档 body 中的内容控件非常有用。 问题是它从不更新 header 和页脚中的内容控件。 有什么我想念的吗?
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)));
}
}
页眉和页脚与主文档正文分开存储。
在原始 OpenXML 标记中,相应的文件是 "header#.xml" 和 "footer#.xml"。
在 OpenXML SDK 中,您需要遍历 MainDocumentPart.HeaderParts
和 MainDocumentPart.FooterParts
。