Search code examples
pythonpython-2.7ms-wordpywin32win32com

Reading Table Contet In Header And Footer In MS-Word File Using Python


This is my extended question for the question:

How to read contents of an Table in MS-Word file Using Python?

The solution provided by @YusuMishi is great, but it does not catch the headers in the header and footer.

Let me elaborate on that: enter image description here

Using the code

import win32com.client as win32
import os
word = win32.Dispatch("Word.Application")
word.Visible = 0
p = os.path.abspath("Catch my tables.docx")
word.Documents.Open(p)
doc = word.ActiveDocument
print doc.Tables.Count

I will get 2 printed (Table 1 and Table 2)

How do I go through the information in Table 0 and Table N

Get the document here


Solution

  • Accessing Headers and Footers is a bit tricky. Here is how to do it:

    HeaderTable = doc.Sections(1).Headers(1).Range.Tables(1)
    FooterTable = doc.Sections(1).Footers(1).Range.Tables(1)
    

    You can get the table count this way:

    HeaderTablesCount = doc.Sections(1).Headers(1).Range.Tables.Count
    FooterTablesCount = doc.Sections(1).Footers(1).Range.Tables.Count
    

    And get the text from cells this way:

    HeaderTable.Cell(1,1).Range.Text
    FooterTable.Cell(1,1).Range.Text