2

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

如何使用 Python 读取 MS-Word 文件中表格的内容?

@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 1Table 2

我如何浏览Table 0Table N

在此处获取文档

4

2 回答 2

4

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

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
于 2013-05-10T16:56:33.477 回答
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
于 2013-05-10T16:14:24.640 回答