C# 在C中使用互操作PIA从MS Word页眉和页脚获取所有行#

C# 在C中使用互操作PIA从MS Word页眉和页脚获取所有行#,c#,ms-word,C#,Ms Word,我试图从word文档的页眉和页脚中获取所有行。我正在使用以下代码: HeaderFooter header = this.Doc.Sections[1].Headers[Word.WdHeaderFooterIndex.wdHeaderFooterPrimary] string text = header.Range.Text; 但是Range.Text属性似乎总是返回最后一行。如果我的标题有: 标题行1 标题行2 标题行3 我的代码总是返回“标题行3”。对于页脚,我得到了类似的结果。我已尝试

我试图从word文档的页眉和页脚中获取所有行。我正在使用以下代码:

HeaderFooter header = this.Doc.Sections[1].Headers[Word.WdHeaderFooterIndex.wdHeaderFooterPrimary]
string text = header.Range.Text;
但是
Range.Text
属性似乎总是返回最后一行。如果我的标题有:

标题行1

标题行2

标题行3

我的代码总是返回“标题行3”。对于页脚,我得到了类似的结果。我已尝试调用
header.Range.whentitory()
。我尝试调用
header.Range.parages
并尝试迭代
段落
集合。我完全不知所措。MSDN上的文档是神秘的,我找不到我的方式通过它。任何帮助都将不胜感激


FWIW:我正在用C#编写一个实用程序,以验证大型word文档库中的每个文档是否符合公司范围的模板。模板要求页眉和页脚包含某些信息(标题、文档编号、日期等)。还将对照正则表达式检查每个数据。我知道字段、书签等的使用会很优雅,但我担心我正在处理的文档只是将信息作为文本嵌入页眉和页脚中。

我找到了答案。像大多数东西一样,它隐藏在显而易见的地方。我正在使用console.WriteLine()从控制台进行调试,斜杠Rs占了我的上风

private string GetUsableTextFromRange(Word.HeaderFooter headerFooter)
{
    Word.Range range = headerFooter.Range;
    string textWithSlashRs = range.Text;
    string usableText = textWithSlashRs.Replace("\r", Environment.NewLine);
    return usableText;
}

最后我一直都有数据。。。希望这对其他人有所帮助。

您可以尝试其他标题,以防万一

foreach (Section section in this.Doc.Sections)
    foreach (HeaderFooter header in section.Headers)
        if (header.Range.Text.Contains("1")) Debugger.Break();

我已经好几年没发过这样的帖子了。很高兴知道有些事情没有改变。感谢没有帮助的人没有给出理由就否决了我的问题。很明显,我并不真的需要帮助,也不希望有人回答。谢谢你投票结束我的问题。很明显,你比我更清楚什么值得问,什么不值得问。所以contians有着丰富的信息,当第一次谷歌点击是一个因为一些迂腐的原因而被关闭的问题,却有着我一直在寻找的答案时,我总是笑。谢谢你!你在做上帝的工作。