0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Python で Word 文書をマージする方法

Last updated at Posted at 2023-12-01

はじめに

大量の文書を処理する際に、関連する文書を 1 つにマージできる場合があります。この操作により、作業効率が向上し、文書の整理が容易になります。手動でのコピー&ペーストに加えて、プログラミングを使用してこのタスクを実行することも可能です。特にバッチ処理には非常に便利です。以下では、Pythonを使用してWord文書を結合する方法について説明します。

環境

このライブラリは有料ですが、30 日間の無料試用版も提供されています。
もっと多いサンプルコードについて、Spire.Doc for Pythonをダウンロードして参照してください。

準備

まず、Spire.Doc for Python と plum-dispatch v1.7.4を VS Code にインポートします。
1.Python をダウンロードしてインストールします。
2.VS Codeで「Extensions」をクリックし、「Python」を検索してインストールします。
3.「Explorer」-「NO FOLRDER OPENED」-「Open Folder」
4.フォルダーを選択し、そこに「.py」ファイルを追加します。
5.「Terminal」-「New Terminal」
6.次のコマンドを入力します。
pip install Spire.Doc

コード:

文書全体を挿入する

この方法では、完全なドキュメントを挿入することで複数のドキュメントがマージされます。
まず、Documentインスタンスを作成して、Sample1をロードします。 次に、Document.insertTextFromFile(fileName:str,fileFormat:'FileFormat') メソッドを呼び出して、Sample1にSample2を挿入します。 最後に、結果ドキュメントを保存します。

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/InsertDocuments.docx")
doc.Close()

image.png

文書のコンテンツのみを結合する

まず、Documentインスタンスを作成し、2 つのサンプル文書をロードします。 次に、Sample2のすべてのセクションのサブオブジェクトをループします。 そして、これらのサブオブジェクトをSample1の最後のセクションに追加します。 最後に、結果ドキュメントを保存します。

from spire.doc import *
from spire.doc.common import *

# Document クラスのオブジェクトを 作成し、2 つの Word 文書をロードします
doc1 = Document()
doc1.LoadFromFile("Sample1.docx")
doc2 = Document()
doc2.LoadFromFile("Sample2.docx")

# Sample1の最後のセクションを取得します
lastSection = doc1.Sections.get_Item(doc1.Sections.Count - 1)

# Sample2のセクションをループします
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)

        # Sample2のサブオブジェクトをSample1の最後のセクションに追加します
        lastSection.Body.ChildObjects.Add(obj.Clone())

# 結果ドキュメントを保存します
doc1.SaveToFile("output/MergeByCloning.docx")
doc1.Close()
doc2.Close()

image.png

0
0
0

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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?