[Python] Wordファイルを作成する方法

PythonでWordファイルを作成するには、python-docxライブラリを使用します。

このライブラリは、Word文書の作成、編集、保存を簡単に行うための機能を提供します。

まず、Documentクラスをインスタンス化して新しい文書を作成します。

次に、add_paragraphメソッドを使用して段落を追加したり、add_headingメソッドで見出しを追加することができます。

最後に、saveメソッドを使用してファイルを保存します。

この方法を使えば、プログラムから自動的にWord文書を生成することが可能です。

この記事でわかること
  • python-docxライブラリのインストールと基本的な使い方
  • 新しいWordファイルの作成と既存ファイルの読み込み方法
  • テキストや画像の挿入、表の作成方法
  • ヘッダーとフッターの設定方法
  • 複数ページのドキュメント作成や自動レポート生成の応用例

目次から探す

PythonでWordファイルを作成する方法

必要なライブラリの紹介

PythonでWordファイルを作成するためには、特定のライブラリを使用する必要があります。

ここでは、最も一般的に使用されるライブラリであるpython-docxについて紹介します。

python-docxとは

python-docxは、Pythonを使用してMicrosoft Wordの.docxファイルを操作するためのライブラリです。

このライブラリを使用することで、Wordファイルの作成、編集、保存が可能になります。

以下のような機能を提供しています。

  • 新しいWordファイルの作成
  • 既存のWordファイルの読み込みと編集
  • テキストや画像の追加
  • 表や段落の操作
  • フォントやスタイルの設定

インストール方法

python-docxを使用するには、まずライブラリをインストールする必要があります。

インストールは、Pythonのパッケージ管理ツールであるpipを使用して簡単に行うことができます。

以下のコマンドをターミナルまたはコマンドプロンプトで実行してください。

pip install python-docx

このコマンドを実行することで、python-docxライブラリがインストールされ、Pythonスクリプト内で使用できるようになります。

インストールが完了したら、次のようにimport文を使用してライブラリをインポートします。

import docx

これで、python-docxを使用してWordファイルを操作する準備が整いました。

次のセクションでは、具体的な操作方法について詳しく解説していきます。

Wordファイルの基本操作

Pythonを使用してWordファイルを操作する際の基本的な手順について説明します。

ここでは、新しいWordファイルの作成と既存のWordファイルの読み込みについて解説します。

新しいWordファイルの作成

新しいWordファイルを作成するには、python-docxライブラリのDocumentクラスを使用します。

以下のサンプルコードでは、新しいWordファイルを作成し、簡単なテキストを追加して保存する方法を示します。

import docx
# 新しいWordドキュメントを作成
doc = docx.Document()
# ドキュメントに段落を追加
doc.add_paragraph("これは新しいWordファイルです。")
# ファイルを保存
doc.save("new_document.docx")

このコードを実行すると、カレントディレクトリにnew_document.docxという名前のWordファイルが作成されます。

このファイルには、指定したテキストが含まれています。

既存のWordファイルの読み込み

既存のWordファイルを読み込んで操作することも可能です。

以下のサンプルコードでは、既存のWordファイルを読み込み、その内容を表示する方法を示します。

import docx
# 既存のWordドキュメントを読み込む
doc = docx.Document("existing_document.docx")
# ドキュメント内のすべての段落を表示
for paragraph in doc.paragraphs:
    print(paragraph.text)

このコードを実行すると、指定したexisting_document.docxファイル内のすべての段落がコンソールに表示されます。

これにより、ファイルの内容を確認したり、必要に応じて編集を行うことができます。

これらの基本操作をマスターすることで、Pythonを使用してWordファイルを自在に操作できるようになります。

次のセクションでは、さらに詳細な操作方法について解説していきます。

テキストの追加

Wordファイルにテキストを追加することは、ドキュメント作成の基本です。

ここでは、段落の追加方法とフォントスタイルの設定について解説します。

段落の追加

python-docxを使用すると、Wordドキュメントに簡単に段落を追加することができます。

以下のサンプルコードでは、新しい段落を追加する方法を示します。

import docx
# 新しいWordドキュメントを作成
doc = docx.Document()
# 段落を追加
doc.add_paragraph("これは最初の段落です。")
doc.add_paragraph("これは2番目の段落です。")
# ファイルを保存
doc.save("paragraphs_document.docx")

このコードを実行すると、paragraphs_document.docxという名前のWordファイルが作成され、指定した2つの段落が含まれます。

add_paragraphメソッドを使用することで、簡単に複数の段落を追加できます。

フォントスタイルの設定

段落にテキストを追加するだけでなく、フォントスタイルを設定することも可能です。

以下のサンプルコードでは、フォントサイズや太字、斜体などのスタイルを設定する方法を示します。

import docx
from docx.shared import Pt
# 新しいWordドキュメントを作成
doc = docx.Document()
# 段落を追加し、フォントスタイルを設定
paragraph = doc.add_paragraph("これはスタイル付きの段落です。")
run = paragraph.runs[0]
run.font.size = Pt(14)  # フォントサイズを14ポイントに設定
run.bold = True         # 太字に設定
run.italic = True       # 斜体に設定
# ファイルを保存
doc.save("styled_paragraph_document.docx")

このコードを実行すると、styled_paragraph_document.docxという名前のWordファイルが作成され、指定したスタイルが適用された段落が含まれます。

runオブジェクトを使用することで、テキストのスタイルを細かく設定できます。

これらの方法を活用することで、Wordドキュメントに多様なテキストを追加し、見栄えを整えることができます。

次のセクションでは、さらに高度な操作について解説します。

画像の挿入

Wordドキュメントに画像を挿入することで、視覚的な情報を追加し、ドキュメントの内容をより豊かにすることができます。

ここでは、画像ファイルの読み込みと画像の配置およびサイズ調整について解説します。

画像ファイルの読み込み

python-docxを使用してWordドキュメントに画像を挿入するには、add_pictureメソッドを使用します。

以下のサンプルコードでは、画像ファイルを読み込んでドキュメントに挿入する方法を示します。

import docx
# 新しいWordドキュメントを作成
doc = docx.Document()
# 画像を挿入
doc.add_picture("example_image.png")
# ファイルを保存
doc.save("image_document.docx")

このコードを実行すると、image_document.docxという名前のWordファイルが作成され、指定したexample_image.png画像がドキュメントに挿入されます。

画像ファイルのパスを正しく指定することで、任意の画像を挿入できます。

画像の配置とサイズ調整

挿入した画像の配置やサイズを調整することも可能です。

以下のサンプルコードでは、画像の幅を指定してサイズを調整する方法を示します。

import docx
from docx.shared import Inches
# 新しいWordドキュメントを作成
doc = docx.Document()
# 画像を挿入し、幅を指定してサイズを調整
doc.add_picture("example_image.png", width=Inches(2))
# ファイルを保存
doc.save("resized_image_document.docx")

このコードを実行すると、resized_image_document.docxという名前のWordファイルが作成され、幅が2インチに調整された画像が挿入されます。

Inchesを使用することで、画像のサイズをインチ単位で指定できます。

これらの方法を活用することで、Wordドキュメントに画像を効果的に挿入し、視覚的な要素を強化することができます。

次のセクションでは、さらに高度な操作について解説します。

表の作成

Wordドキュメントに表を追加することで、情報を整理して視覚的にわかりやすく提示することができます。

ここでは、表の追加方法とセルの編集およびスタイル設定について解説します。

表の追加方法

python-docxを使用してWordドキュメントに表を追加するには、add_tableメソッドを使用します。

以下のサンプルコードでは、3行3列の表を追加する方法を示します。

import docx
# 新しいWordドキュメントを作成
doc = docx.Document()
# 3行3列の表を追加
table = doc.add_table(rows=3, cols=3)
# 各セルにデータを入力
for row in range(3):
    for col in range(3):
        cell = table.cell(row, col)
        cell.text = f"セル {row+1}-{col+1}"
# ファイルを保存
doc.save("table_document.docx")

このコードを実行すると、table_document.docxという名前のWordファイルが作成され、3行3列の表が挿入されます。

各セルには、行番号と列番号を示すテキストが入力されています。

セルの編集とスタイル設定

表のセルにデータを入力するだけでなく、スタイルを設定することも可能です。

以下のサンプルコードでは、セルの背景色を設定する方法を示します。

import docx
from docx.oxml import parse_xml
from docx.oxml.ns import nsdecls
# 新しいWordドキュメントを作成
doc = docx.Document()
# 2行2列の表を追加
table = doc.add_table(rows=2, cols=2)
# 各セルにデータを入力し、背景色を設定
for row in range(2):
    for col in range(2):
        cell = table.cell(row, col)
        cell.text = f"データ {row+1}-{col+1}"
        # 背景色を設定
        cell._element.get_or_add_tcPr().append(parse_xml(r'<w:shd {} w:fill="FFFF00"/>'.format(nsdecls('w'))))
# ファイルを保存
doc.save("styled_table_document.docx")

このコードを実行すると、styled_table_document.docxという名前のWordファイルが作成され、背景色が黄色に設定された2行2列の表が挿入されます。

parse_xmlを使用することで、セルのスタイルを細かく設定できます。

これらの方法を活用することで、Wordドキュメントに表を効果的に追加し、情報を整理して提示することができます。

次のセクションでは、さらに高度な操作について解説します。

ヘッダーとフッターの設定

Wordドキュメントにヘッダーとフッターを設定することで、ページ全体に共通の情報を表示することができます。

ここでは、ヘッダーとフッターの追加方法について解説します。

ヘッダーの追加

python-docxを使用してWordドキュメントにヘッダーを追加するには、sectionsプロパティを使用してドキュメントのセクションを取得し、headerプロパティを操作します。

以下のサンプルコードでは、ヘッダーにテキストを追加する方法を示します。

import docx
# 新しいWordドキュメントを作成
doc = docx.Document()
# ドキュメントの最初のセクションを取得
section = doc.sections[0]
# ヘッダーにテキストを追加
header = section.header
header_paragraph = header.paragraphs[0]
header_paragraph.text = "これはヘッダーのテキストです。"
# ファイルを保存
doc.save("header_document.docx")

このコードを実行すると、header_document.docxという名前のWordファイルが作成され、すべてのページに「これはヘッダーのテキストです。」というテキストが表示されます。

フッターの追加

フッターを追加する方法もヘッダーと同様です。

以下のサンプルコードでは、フッターにテキストを追加する方法を示します。

import docx
# 新しいWordドキュメントを作成
doc = docx.Document()
# ドキュメントの最初のセクションを取得
section = doc.sections[0]
# フッターにテキストを追加
footer = section.footer
footer_paragraph = footer.paragraphs[0]
footer_paragraph.text = "これはフッターのテキストです。"
# ファイルを保存
doc.save("footer_document.docx")

このコードを実行すると、footer_document.docxという名前のWordファイルが作成され、すべてのページに「これはフッターのテキストです。」というテキストが表示されます。

これらの方法を活用することで、Wordドキュメントにヘッダーとフッターを効果的に追加し、ドキュメント全体に共通の情報を表示することができます。

次のセクションでは、さらに高度な操作について解説します。

応用例

Pythonを使用してWordドキュメントを作成する際には、基本的な操作に加えて、さまざまな応用例を実現することができます。

ここでは、複数ページのドキュメント作成、自動レポート生成、テンプレートを使用したドキュメント作成について解説します。

複数ページのドキュメント作成

複数ページにわたるドキュメントを作成するには、ページブレークを挿入することで実現できます。

以下のサンプルコードでは、ページブレークを使用して複数ページのドキュメントを作成する方法を示します。

import docx
# 新しいWordドキュメントを作成
doc = docx.Document()
# 最初のページに段落を追加
doc.add_paragraph("これは最初のページです。")
# ページブレークを挿入
doc.add_page_break()
# 2ページ目に段落を追加
doc.add_paragraph("これは2ページ目です。")
# ファイルを保存
doc.save("multi_page_document.docx")

このコードを実行すると、multi_page_document.docxという名前のWordファイルが作成され、2ページにわたるドキュメントが生成されます。

自動レポート生成

自動レポート生成は、データをプログラムで処理し、Wordドキュメントとして出力するプロセスです。

以下のサンプルコードでは、リスト内のデータを表形式でレポートとして出力する方法を示します。

import docx
# 新しいWordドキュメントを作成
doc = docx.Document()
# データを定義
data = [
    ["項目", "値"],
    ["売上", "100万円"],
    ["利益", "20万円"]
]
# 表を追加
table = doc.add_table(rows=1, cols=2)
hdr_cells = table.rows[0].cells
hdr_cells[0].text = data[0][0]
hdr_cells[1].text = data[0][1]
# データを表に追加
for item, value in data[1:]:
    row_cells = table.add_row().cells
    row_cells[0].text = item
    row_cells[1].text = value
# ファイルを保存
doc.save("report_document.docx")

このコードを実行すると、report_document.docxという名前のWordファイルが作成され、データが表形式でレポートとして出力されます。

テンプレートを使用したドキュメント作成

テンプレートを使用することで、既存のフォーマットを活用してドキュメントを作成することができます。

以下のサンプルコードでは、テンプレートを読み込み、内容を編集して新しいドキュメントを作成する方法を示します。

import docx
# テンプレートを読み込む
doc = docx.Document("template_document.docx")
# テンプレートの内容を編集
doc.add_paragraph("テンプレートに新しい内容を追加します。")
# ファイルを保存
doc.save("customized_document.docx")

このコードを実行すると、customized_document.docxという名前のWordファイルが作成され、テンプレートに新しい内容が追加されます。

これらの応用例を活用することで、Pythonを使用してより高度なWordドキュメントの作成が可能になります。

次のセクションでは、よくある質問について解説します。

よくある質問

python-docxでサポートされていない機能は?

python-docxは多くのWord機能をサポートしていますが、いくつかの機能はサポートされていません。

例えば、以下のような機能があります。

  • 複雑な表のスタイル設定(特にカスタムスタイル)
  • 高度なグラフィックや図形の操作
  • マクロやスクリプトの埋め込み

これらの機能を必要とする場合は、他のライブラリやツールを併用することを検討してください。

画像の挿入がうまくいかない場合の対処法は?

画像の挿入がうまくいかない場合、以下の点を確認してください。

  1. ファイルパスの確認: 画像ファイルのパスが正しいか確認します。

相対パスや絶対パスを正しく指定してください。

  1. 画像形式の確認: python-docxは一般的な画像形式(JPEG, PNGなど)をサポートしていますが、サポートされていない形式を使用していないか確認してください。
  2. ファイルの存在確認: 指定したパスに画像ファイルが存在するか確認します。

これらの点を確認することで、画像の挿入が正常に行えるようになるでしょう。

Wordファイルの保存形式は変更できる?

python-docxは、Wordファイルを.docx形式で保存することをサポートしていますが、他の形式(例えば.pdf.doc)への直接の保存はサポートしていません。

別の形式で保存したい場合は、以下の方法を検討してください。

  • 外部ツールの使用: .docxファイルを生成した後、外部のツールやライブラリ(例えば、libreofficepandoc)を使用して他の形式に変換します。
  • オンラインサービスの利用: オンラインの変換サービスを利用して、.docxファイルを他の形式に変換します。

まとめ

Pythonを使用してWordファイルを作成する方法について、基本的な操作から応用例までを解説しました。

python-docxライブラリを活用することで、テキストや画像の挿入、表の作成、ヘッダーやフッターの設定など、さまざまなドキュメント操作が可能です。

この記事を参考に、PythonでのWordファイル操作を試してみてください。

  • URLをコピーしました!
目次から探す