使用Python在MS-Word文件中读取页眉和页脚中的表格内容

时间:2013-05-10 15:06:24

标签: python python-2.7 ms-word pywin32 win32com

这是我对这个问题的扩展问题:

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

@YusuMishi提供的解决方案很棒,但它没有捕获页眉和页脚中的标题。

让我详细说明一下: enter image description here

使用代码

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

我会打印2 Table 1Table 2

如何查看Table 0Table N

中的信息

Get the document here

2 个答案:

答案 0 :(得分:3)

访问页眉和页脚有点棘手。以下是如何做到这一点:

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

您可以通过这种方式获得表格计数:

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

以这种方式从单元格中获取文本:

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

答案 1 :(得分:0)

不幸的是,我不是程序员,但对MS-Word VBA和对象层次结构有一定的了解。这将是很多文本要评论(我宁愿把这个提示)。

如果您搜索表格,则必须分析不同的Document.StoryRanges以找到您的表格。有FootersHeaders,但它们还分为不同的类型。因此,要找到表0,您可以使用这种结构:

This is VBA code!! I hope you could adjust to your needs. And do it separately for you footers.

doc.StoryRanges(wdEvenPagesHeaderStory).Tables.Count
doc.StoryRanges(wdFirstPageHeaderStory).Tables.Count
doc.StoryRanges(wdPrimaryHeaderStory).Tables.Count