这是我对这个问题的扩展问题:
How to read contents of an Table in MS-Word file Using Python?
@YusuMishi提供的解决方案很棒,但它没有捕获页眉和页脚中的标题。
让我详细说明一下:
使用代码
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 1
和Table 2
如何查看Table 0
和Table N
答案 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)
不幸的是,我不是phyton程序员,但对MS-Word VBA和对象层次结构有一定的了解。这将是很多文本要评论(我宁愿把这个提示)。
如果您搜索表格,则必须分析不同的Document.StoryRanges
以找到您的表格。有Footers
和Headers
,但它们还分为不同的类型。因此,要找到表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