Microsoft Office Interop Wordアセンブリを使用して、Word文書のヘッダーとフッターを読み取りたい。
私には2つの問題があります:
まず、脚注とヘッダーにアクセスする方法は?2番目にそれらを文字列に変換する方法(toString()を呼び出すと「System .__ ComObject」を取得しました)
多くのセクションで構成されるDocumentオブジェクトドキュメントが必要です。フッター/ヘッダーは単一のセクションの一部です。各セクションには複数のヘッダー/フッターを含めることができます(たとえば、最初のページで異なる場合があります)。ヘッダー/フッターのテキストにアクセスするには、ヘッダー/フッターに含まれる範囲を取得してから、そのTextプロパティにアクセスする必要があります。
appがWordApplicationClassの場合、このコードは、アクティブなドキュメントのヘッダーとフッターを含む2つのコレクションを提供する必要があります。
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);
}
フッターの代わりに脚注に興味がある場合(ある場所では脚注を書き、他の場所では脚注を書いたので、質問からははっきりしません)、すべての脚注のコレクションをドキュメントに尋ねることができるので、物事はさらに簡単です。メモ内のテキストにアクセスするには、ヘッダー/フッターで見られるのと同じことを行うことができます。範囲にアクセスしてから、Textプロパティを取得します。
List<string> footNotes = new List<string>();
foreach (Footnote aNote in app.ActiveDocument.Footnotes)
footNotes.Add(aNote.Range.Text);