LoginSignup
23
21

More than 3 years have passed since last update.

【自動化】PythonでWordの文書を読み取る

Posted at

Word文書をPythonで読み取る

契約書や報告書などオフィスでは様々な文書がありますが、主流は【Word文書】かと思います。

業務を自動化するにあたっては、Word文書の作成や読み取りを自動化したいというケースも多そうです。
実際、私も3ヶ月ごとに作成する委託契約書の作成をPythonで自動化しています。

本記事では、python-docxというライブラリを使ってPythonでWord文書を読み取る方法を解説します。
(次回はWord文書の作成や置換についてご紹介します。)

Word文書の読み取り

python-docxは標準ライブラリではありません。Anacondaでもデフォルトでは入っていないのでまずインストールしましょう。

pip install python-docx

インストールが終わったらライブラリをimportします。
importのときはpython-docxではなくdocxなので注意してください。

python
import docx

次にWord文書を読み込んでオブジェクトを作成します。
ここでは「テスト.docx」という下記のような文書を読み込みます。
test_docx.png

python
document = docx.Document("テスト.docx")

このdocumentオブジェクトはparagraphsというリストと、tablesというリストを持ちます。

paragraphsは本文中の段落のことで、tablesは表のことです。
tablesは行をrowsのリストとして持ち、さらにrowsは列(セル)をcellsというリストとして持っています。
テキストを取得したい場合は、textという属性を参照します。

つまり、このような構造になります。
python-docx.png

python
for paragraph in word.paragraphs:
    print(paragraph.text)
実行結果
ここは1段落目。

ここは2段落目。

python
for table in document.tables:
    for row in table.rows:
        for cell in row.cells:
            print(cell.text)
実行結果
ここは表の1行/1列
ここは表の1行/2列
ここは表の2行/1列
ここは表の2行/2列

注意点

残念ながら、python-docxでは脚注を読み取ることはできません。
※少なくとも、私はいくら調べても脚注を操作する方法がわかりませんでした。もし、何か情報をお持ちならコメントいただけると幸いです。

脚注も含めて操作したい場合には、別の方法を検討する必要がありそうです。

23
21
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
23
21