微软办公套件Interop Word读取页眉和脚注

4
我希望使用Microsoft Office Interop Word Assemblies来读取Word文档的页眉和页脚。
我的问题有两个:
第一个问题是如何访问脚注和页眉? 第二个问题是如何将它们转换为字符串(当我调用toString()时,只得到"System.__ComObject")?
1个回答

6
您应该拥有一个由许多节组成的文档对象doc,页眉/页脚是单个节的一部分。每个节可以有多个页眉/页脚(它们可以例如在第一页上不同)。要访问页眉/页脚的文本,您必须获取包含在页眉/页脚中的范围,然后访问其Text属性。
如果app是您的Word ApplicationClass,那么这段代码应该为您提供了活动文档的页眉和页脚两个集合:
        List<string> headers = new List<string>();
        List<string> footers = new List<string>();
        foreach (Section aSection in app.ActiveDocument.Sections)
        {
            foreach (HeaderFooter aHeader in aSection.Headers)
                headers.Add(aHeader.Range.Text);
            foreach (HeaderFooter aFooter in aSection.Footers)
                footers.Add(aFooter.Range.Text);
        } 

如果您对注脚感兴趣而不是页脚(由于您在某些地方写了注脚,而在其他地方写了页脚,因此这并不是非常清楚的问题),那么事情就更简单了,因为您可以要求文档收集所有它的注脚。要访问备注中的文本,您可以执行与标题/页脚相同的操作:访问范围,然后获取文本属性:

        List<string> footNotes = new List<string>();
        foreach (Footnote aNote in app.ActiveDocument.Footnotes)
            footNotes.Add(aNote.Range.Text);

1
代码的第一部分有一个小错误。第二个foreach应该将数据添加到页脚列表中,而不是标题列表中。除此之外,做得很好! - Nick_F

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接