大量の Word 文書を扱うのは非常に大変です。編集やレビューを行う際に、多くの文書を開閉するだけで多くの時間が浪費されます。さらに、多数の Word 文書を個別に共有・受信するのは煩雑で、送信者と受信者の両方にとって繰り返しの操作が必要になります。そのため、効率を向上させ、時間を節約するために、関連する Word 文書を 1 つのファイルに結合するのが望ましいです。本記事では、Spire.Doc for Python を使用して、Python プログラムで簡単に Word 文書を結合する方法を紹介します。
Spire.Doc for Python のインストール
この操作には、Spire.Doc for Python と plum-dispatch v1.7.4 が必要です。これらは、Spire.Doc for Python の公式ウェブサイトから手動でダウンロードするか、以下の pip コマンドでインストールできます。
pip install Spire.Doc
Python でファイルを挿入して Word 文書を結合する
Document.insertTextFromFile() メソッドを使用すると、他の Word 文書を現在の文書に挿入できます。このメソッドを使用すると、挿入された内容は新しいページから開始されます。ファイルの挿入による Word 文書の結合手順は以下のとおりです。
- Document クラスのオブジェクトを作成し、Document.LoadFromFile() メソッドを使用して Word 文書を読み込みます。
- Document.InsertTextFromFile() メソッドを使用して、別の文書の内容を挿入します。
- Document.SaveToFile() メソッドを使用して、結合後の文書を保存します。
- Python
from spire.doc import Document, FileFormat
# Document クラスのオブジェクトを作成し、Word 文書を読み込む
doc = Document()
doc.LoadFromFile("Sample1.docx")
# 別の Word 文書の内容をこの文書に挿入する
doc.InsertTextFromFile("Sample2.docx", FileFormat.Auto)
# 文書を保存する
doc.SaveToFile("output/ドキュメントの挿入.docx")
doc.Close()
Python で内容をクローンして Word 文書を結合する
Word 文書の結合は、ある文書の内容を別の文書にクローン(複製)する方法でも実現できます。この方法では、元の文書の書式を保持し、クローンされた内容は新しいページを作成せずに既存の文書の末尾に追加されます。具体的な手順は以下のとおりです。
- Document クラスのオブジェクトを 2 つ作成し、それぞれ Document.LoadFromFile() メソッドを使用して 2 つの Word 文書を読み込みます。
- Document.Sections.get_Item() メソッドを使用して、結合先の文書の最後のセクションを取得します。
- クローンする文書のセクションをループ処理し、それぞれのセクション内の子オブジェクトをループ処理します。
- Section.Body.ChildObjects.get_Item() メソッドを使用して、セクション内の子オブジェクトを取得します。
- Section.Body.ChildObjects.Add() メソッドを使用して、取得した子オブジェクトを結合先の最後のセクションに追加します。
- Document.SaveToFile() メソッドを使用して、結合後の文書を保存します。
- Python
from spire.doc import Document
# Document クラスのオブジェクトを 2 つ作成し、2 つの Word 文書を読み込む
doc1 = Document()
doc1.LoadFromFile("Sample1.docx")
doc2 = Document()
doc2.LoadFromFile("Sample2.docx")
# 最初の文書の最後のセクションを取得する
lastSection = doc1.Sections.get_Item(doc1.Sections.Count - 1)
# 2 つ目の文書のセクションを順番に処理する
for i in range(doc2.Sections.Count):
section = doc2.Sections.get_Item(i)
# セクション内の子オブジェクトを順番に処理する
for j in range(section.Body.ChildObjects.Count):
obj = section.Body.ChildObjects.get_Item(j)
# 2 つ目の文書の子オブジェクトを最初の文書の最後のセクションに追加する
lastSection.Body.ChildObjects.Add(obj.Clone())
# 結果の文書を保存する
doc1.SaveToFile("output/ドキュメント内容のコピー.docx")
doc1.Close()
doc2.Close()
一時ライセンスを申請する
結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。にお問い合わせ、30 日間有効な一時ライセンスを取得してください。