はじめに
大量の文書を処理する際に、関連する文書を 1 つにマージできる場合があります。この操作により、作業効率が向上し、文書の整理が容易になります。手動でのコピー&ペーストに加えて、プログラミングを使用してこのタスクを実行することも可能です。特にバッチ処理には非常に便利です。以下では、Pythonを使用してWord文書を結合する方法について説明します。
環境
- Python 3.12.0
- Spire.Doc for Pythonライブラリ
このライブラリは有料ですが、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()
文書のコンテンツのみを結合する
まず、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()