動作検証バージョン:64bit Windows 10 Pro + + Python 3.8.3 + python-docx 0.8.10
「python docx 表内 表」
といった検索キーワードでアクセスがありました。
Microsoft Word等で作成できるdocxファイルを操作するPythonのライブラリpython-docxを使って、表の中に存在する表からデータを取得するには、どのようなコードを書けばいいのかを探していた方による検索でしょうか。
[スポンサードリンク]
表内の表からデータを取得するサンプル
1つめの表の、1行目×1列目のセルに表が存在するsample.docxをCドライブtempフォルダーに準備してから、以下のスクリプトを実行してください。
import docx
for cel in nested_tbl._cells:
print(cel.text)
doc = docx.Document(r'C:\temp\sample.docx')
nested_tbl = doc.tables[0].cell(0, 0).tables[0]for cel in nested_tbl._cells:
print(cel.text)
1つめの表の、1行目×1列目のセル内に存在する、1つ目の表のデータがprintされます。
サンプルスクリプトで行っている処理について
表内の表を取得しているのは、
nested_tbl = doc.tables[0].cell(0, 0).tables[0]
の右辺です。
セルを表す_Cellオブジェクトに用意されているtablesで、そのセルに存在するTableをリストとして得られ、「.tables[0]」とすることで1つ目のTableオブジェクトを取得しています。
表内の表であっても、Tableオブジェクトを取得したあとは、入れ子になっていない表の操作と同じです。
最終更新日時:2021-04-17 12:57
[スポンサードリンク]
- Newer:pywin32・win32comでExcelのセルに関数を入力する
- Older:Word VBAでセルを分割する
Home » Python » python-docxの使い方 » python-docxでWord文書内にある表内の表からデータを取得する