Pythonで複数のWord文書を1つに結合する方法

大量のWord文書を処理することは、非常に困難な作業です。文書の編集やレビューだけでなく、文書を開閉するだけでも多くの時間が浪費されます。さらに、複数のWord文書を共有したり受信したりする場合、送受信の手続きが煩雑になる可能性があります。そのため、効率を上げて時間を節約するために、関連するWord文書を1つのファイルに統合することをおすすめします。この記事では、Pythonプログラムを使用してWord文書を簡単に結合する方法について紹介します。

- **[Pythonでファイルを挿入してWord文書を結合する](#pythonでファイルを挿入してword文書を結合する)**
- **[PythonでコンテンツをコピーしてWord文書を結合する](#pythonでコンテンツをコピーしてword文書を結合する)**

この記事で説明する方法には[Spire.Doc for Python](https://www.e-iceblue.com/Download/Spire-Doc-Python.html)が必要で、これは公式ウェブサイトからダウンロードするか、PyPI経由でインストールすることができる：`pip install Spire.Doc`

## Pythonでファイルを挿入してWord文書を結合する
**Document.insertTextFromFile()** メソッドは、他のWord文書を現在の文書に挿入するために使用され、挿入されたコンテンツは新しいページから開始されます。挿入によってWord文書をマージするための詳細な手順は次のとおりです。
- **Document** クラスのオブジェクトを作成し、**Document.LoadFromFile()** メソッドを使用してWord文書を読み込みます。
- **Document.InsertTextFromFile()** メソッドを使用して、別の文書からその文書に内容を挿入します。
- **Document.SaveToFile()** メソッドで文書を保存します。

**コード例**
Python
```python
from spire.doc import *
from spire.doc.common import *

# Document クラスのオブジェクトを作成し、Word ドキュメントをロードする
doc = Document()
doc.LoadFromFile("Sample1.docx")

# 別の Word ドキュメントの内容を現在のドキュメントに挿入する
doc.InsertTextFromFile("Sample2.docx", FileFormat.Auto)

# ドキュメントを保存する
doc.SaveToFile("output/ファイルを挿入してWord文書を結合.docx")
doc.Close()
```

統合されたWord文書

![Pythonでファイルを挿入してWord文書を結合する](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/278784/af1840f9-3531-c22f-c13b-71636e3e1399.png)

## PythonでコンテンツをコピーしてWord文書を結合する
Word文書の結合は、あるWord文書から別の文書へコンテンツをコピーすることでも実現できます。この方法では、元の文書の書式が維持され、別の文書からクローンされたコンテンツは、新しいページを開始することなく、現在の文書の最後に続行されます。詳しい手順は以下の通りです。
-**Document** クラスのオブジェクトを2つ作成し、**Document.LoadFromFile()** メソッドを使用して2つのWord文書を読み込みます。
- **Document.Sections.get_Item()** メソッドを使用して、移動先ドキュメントの最後のセクションを取得します。
- クローンするドキュメントのセクションをループし、セクションの子オブジェクトをループします。
- **Section.Body.ChildObjects.get_Item()** メソッドを使用して、セクションの子オブジェクトを取得します。
- **Section.Body.ChildObjects.Add()** メソッドを使用して、子オブジェクトをコピー先ドキュメントの最後のセクションに追加します。
- **Document.SaveToFile()** メソッドを使用して結果ドキュメントを保存します。

**コード例**
Python
```python
from spire.doc import *
from spire.doc.common import *

# 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/内容をコピーしてWord文書を結合.docx")
doc1.Close()
doc2.Close()
```

統合されたWord文書

![PythonでコンテンツをコピーしてWord文書を結合する](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/278784/866fdab6-4a7e-cccb-dc5c-2fa8c48e3948.png)

上記は、Pythonを使って、ファイルを挿入したり、内容をコピーしたりしてWord文書をマージする方法を説明したものです。Spire.Doc for Pythonは他にも様々なWord文書操作機能をサポートしていますので、[Spire.Doc for Pythonのチュートリアル](https://www.e-iceblue.com/Tutorials/Python/Spire.Doc-for-Python/Program-Guide/Spire.Doc-for-Python-Program-Guide-Content.html)をご覧ください。 また、[Spire.Docのフォーラム](https://www.e-iceblue.com/forum/spire-doc-f6.html)で議論に参加することもできます。