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 0との情報を調べる方法Table 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 に答える